如何在一个节点android firebase下查询/获取数据?

时间:2017-01-18 07:48:38

标签: android firebase firebase-realtime-database

我的数据库结构如下:

myDatabasename
name1:{
    UserID: { 
       uniqueId: {
         Data1: ""
         Data1: ""
    }

    UserID: { 
       uniqueId: {
         Data1: ""
         Data1: ""
    }
}
name2:{
    UserID: { 
       uniqueId: {
         Data1: ""
         Data1: ""
    }

    UserID: { 
       uniqueId: {
         Data1: ""
         Data1: ""
    }

我想从节点的name1部分检索数据,但我不知道如何做到这一点:以前我没有name1和name2,所以我能够检索这样的数据;工作得很好。

 for (DataSnapshot ds1: ds.getChildren()) {
        DATA data= ds1.getValue(DATA.class);
        datas.add(data);
    }

我是firebase的新手,所以我不知道如何做到这一点,我试着玩,但它强调ds.getChildren("name1") in red

for (DataSnapshot ds1: ds.getChildren("name1")) {
            DATA data= ds1.getValue(DATA.class);
            datas.add(data);
        }

DATA data = ds1.equals("name1").getValue(DATA.class); // I tried this but it also throws red line under getValue;

====编辑

对于上述结构之前的混淆,很抱歉,我的结构看起来像是,我能够通过使用上面的代码来阅读它。

UserID: { 
  uniqueId: {
     Data1: ""
     Data1: ""
   }
  uniqueId: {
     Data2: ""
     Data2: ""
   }
} 

1 个答案:

答案 0 :(得分:1)

您可以使用:

遍历name1的所有子项
for(DataSnapshot ds1 : dataSnapshot.getChildren()){
    // your codes
}

但你应该将听众指向name1作为参考。

databaseReference.child("name1").addListenerForSingleValueEvent(valueEventListener);

或者,您也可以这样做:

for(DataSnapshot ds1 : dataSnapshot.child("name1").getChildren()){
    // your codes
}

创建一个监听器:

databaseReference.addListenerForSingleValueEvent(valueEventListener);

您可以使用其他侦听器方法。