我想在Firebase中具有未知ID的节点下检索数据。我使用了 push()。getKey(),它为每个条目分配了一个未知的ID。
数据库的结构有点像这样: 已知ID -> {未知ID 1 :data1,未知ID 2 :data2,未知ID 3 :data3 }
如何使用这种方式访问数据:
ref.child(Known ID).child(Unknown ID)--> data
但要记住随机的未知ID?
引用了其他答案,但无法得出结论。尝试过,但获取了Null。
答案 0 :(得分:1)
TLDR::如果您不知道子节点的ID /名称,则无法获取 直接。
据我从您的解释中可以理解,您的结构如下:
Root> User>使用未知ID添加了更多数据。
我建议您像这样重组它。
Root> User>名称为“ userData“>在此处添加具有唯一ID的更多数据的另一个子节点
userID1234:{
....,
records:{
record1:{},
record2:{},
so on
}
}
这将通过在userData子项上添加侦听器来帮助您一次性获取数据。
现在执行此操作以获取所有记录:
//Single event listener
databaseReference.child(userID).child("records").addListenerForSingleValueEvent(
new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
// Get all records
if (dataSnapshot.exists()){
// Use the fetched data which contains all the records
}
}
});