我的数据库结构如下:
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: ""
}
}
答案 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);
您可以使用其他侦听器方法。