如果我的树看起来像这样:
{
unique_id_1: {
message: "hello"
}
unique_id_2: {
message: "hi there"
}
}
如果我不知道用户的唯一 ID,如何获取每个唯一 ID 的子级的所有消息?或者我必须构建数据库,以便消息只能是唯一 id 的直接子级,然后像这样遍历:
DatabaseReference database = FirebaseDatabase.getInstance().getReference();
DatabaseReference reference = database.child("message");
或者这行不通?
最佳答案
要获取所有消息,需要循环:
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) {
}
});
这里的 datasnapshot 位于根节点,如果您有唯一的 id 但没有值,您可以在这些唯一的 id dataSnapshot.getChildren()
内循环并获取消息。
您还可以通过执行 String key = datas.getKey();
关于java - 遍历唯一id获取children,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53307576/