我正在尝试从firebase数据库中的子节点读取值。问题是这些子节点将在运行时添加。所以,我现在还不知道孩子的名字。
是否可以从这些子节点读取常用值?结构如图像所附。蓝色是动态子节点,红色是要读取的值。
答案 0 :(得分:1)
如果我正确理解了您的问题,则会动态添加蓝色子项,并且您希望在运行时获取它们的名称。请尝试以下代码:
DatabaseReference databaseReference=FirebaseDatabase.getInstance().getReference().child("data")
.child("idsToTrack").child(data_unique_id);
databaseReference.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
String childName=dataSnapshot.child("name").getValue(String.class);
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
此侦听器为您提供有关所需节点下的子流量的大量信息。在此示例中,您将获取添加的子项的名称。