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

发布于 2020-05-06 21:03:31
要获得对应于所有用户的所有评论,您必须迭代两次,如以下代码行所示:
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());https://stackoverflow.com/questions/61635476
复制相似问题