检索数据时如何访问Firebase中的未知节点?

时间:2019-08-15 17:15:25

标签: android firebase firebase-realtime-database

我想在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。

1 个答案:

答案 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
            }
        }
    });