如果我的树看起来像这样:
{
unique_id_1: {
message: "hello"
}
unique_id_2: {
message: "hi there"
}
}
如果我不知道用户的唯一ID,该如何获得所有属于每个唯一ID的子消息?或者,我必须构建数据库,以便消息只能是具有唯一ID的直接子代,然后像这样遍历:
DatabaseReference database = FirebaseDatabase.getInstance().getReference();
DatabaseReference reference = database.child("message");
还是那行不通?
答案 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();