我的数据库结构如下:
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")
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: ""
}
}
最佳答案
您可以使用以下方法遍历 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);
您可以使用其他监听器方法。
关于android - 如何在一个节点android firebase下查询/获取数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41713873/