遍历唯一的ID以获取孩子

时间:2018-11-14 19:34:53

标签: android firebase firebase-realtime-database

如果我的树看起来像这样:

{
unique_id_1: {
    message: "hello"
    }
unique_id_2: {
    message: "hi there"
    }
}

如果我不知道用户的唯一ID,该如何获得所有属于每个唯一ID的子消息?或者,我必须构建数据库,以便消息只能是具有唯一ID的直接子代,然后像这样遍历:

DatabaseReference database = FirebaseDatabase.getInstance().getReference();
DatabaseReference reference = database.child("message");

还是那行不通?

1 个答案:

答案 0 :(得分:3)

要获取所有消息,您需要循环:

DatabaseReference ref = FirebaseDatabase.getInstance().getReference();

ref.addListenerForSingleValueEvent(new ValueEventListener() {
 @Override
public void onDataChange(DataSnapshot dataSnapshot) {
  for(DataSnapshot datas: dataSnapshot.getChildren()){
     String messages = datas.child("message").getValue().toString();
     }
 }
@Override
public void onCancelled(DatabaseError databaseError) {
     }
});

这里的数据快照位于根节点,那么如果您具有唯一的ID并且没有值,则可以在这些唯一的ID dataSnapshot.getChildren()内循环并获取消息。

您还可以通过执行String key = datas.getKey();

来检索唯一ID。