首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果Firebase表包含来自更多应用程序认证用户的数据,我如何迭代该表?

如果Firebase表包含来自更多应用程序认证用户的数据,我如何迭代该表?
EN

Stack Overflow用户
提问于 2020-05-06 20:39:14
回答 1查看 36关注 0票数 0

我正在开发一个旅行Android应用程序,其想法是用户可以通过Firebase身份验证进行身份验证和创建个人帐户。其中一项功能是每个用户都可以发表评论。现在,我想要的是从Firebase实时数据库中检索所有的评论(不仅仅是当前的用户评论,所有的评论)。我怎样才能做到这一点呢?

EN

Stack Overflow用户

回答已采纳

发布于 2020-05-06 21:03:31

要获得对应于所有用户的所有评论,您必须迭代两次,如以下代码行所示:

代码语言:javascript
运行
复制
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference reviewsRef = rootRef.child("reviews");
ValueEventListener valueEventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for(DataSnapshot uidSnapshot : dataSnapshot.getChildren()) {
            for(DataSnapshot reviewSnapshot : uidSnapshot.getChildren()) {
                String comment = reviewSnapshot.child("comment").getValue(String.class);
                Log.d("TAG", comment);
            }
        }
    }

    @Override
    public void onCancelled(@NonNull DatabaseError databaseError) {
        Log.d("TAG", databaseError.getMessage()); //Don't ignore errors!
    }
};
reviewsRef.addListenerForSingleValueEvent(valueEventListener);

logcat中的输出将为:

代码语言:javascript
运行
复制
Really nice place
The ideal place for holiday. No matter if it
Hi

如果您正在对审查对象使用POJO类,请使用:

代码语言:javascript
运行
复制
Review review = reviewSnapshot.getValue(Review.class);
Log.d("TAG", review.getComment());
票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61635476

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档