如果其中包含来自更多经过应用程序身份验证的用户的数据,我如何遍历Firebase表?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如果其中包含来自更多经过应用程序身份验证的用户的数据,我如何遍历Firebase表?相关的知识,希望对你有一定的参考价值。

我正在开发旅行android应用程序,其想法是用户可以通过Firebase身份验证进行身份验证并创建个人帐户。其中一项功能是,每个用户都可以发表评论。现在,我想要的是从Firebase实时数据库中检索所有评论(不仅仅是当前的用户评论,而是所有评论)。我该如何实现?

enter image description here

答案

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

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中的输出将是:

Really nice place
The ideal place for holiday. No matter if it
Hi

如果您使用POJO类作为审阅对象,请使用:

Review review = reviewSnapshot.getValue(Review.class);
Log.d("TAG", review.getComment());

以上是关于如果其中包含来自更多经过应用程序身份验证的用户的数据,我如何遍历Firebase表?的主要内容,如果未能解决你的问题,请参考以下文章

向 Firebase 用户添加新数据

Flutter:显示来自经过身份验证的 Firebase Auth 用户的带有 StreamBuilder 的一些 Firestore 集合

来自 laravel 会话登录的经过身份验证的 api 调用。可能吗?

预检请求没问题,然后,经过身份验证,响应不包含允许 cors 标头

来自已经过身份验证的帐户的Firebase createUserWithEmailAndPassword()

Nuxt Auth 模块经过身份验证的用户数据