android - 如何在 Android Studio 的 Firebase 数据库中检索 1 个子项下的数据列表
问题描述
存储在 Firebase 中的数据:
29-06-2018(date)
-AAAA
-25142(jobno)
-Park station(address)
-BMW(model)
-BBBB
-85142(jobno)
-Base station(address)
-Ford(model)
在这里,我想要-BBBB 下的所有孩子。不想循环通过 AAAA。如何直接得到BBBB的孩子。我有数据(日期,BBBB)。只想获取BBBB的jobno,地址,型号。请建议我一个解决方案。
我的代码在这里
DatabaseReference database = FirebaseDatabase.getInstance().getReference();
DatabaseReference pwd = database.child("29-06-2018").child("BBBB");
pwd.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot ds : dataSnapshot.getChildren()) {
String a = ds.child("jobno").getValue(String.class);
String b = ds.child("address").getValue(String.class);
String c = ds.child("model").getValue(String.class);
}
}
@Override
public void onCancelled(DatabaseError error) {
}
});
解决方案
你在听一个独生子女/29-06-2018/BBBB
。通过循环dataSnapshot.getChildren()
遍历每个属性,然后尝试到达每个属性的子属性。那是行不通的,所以你应该摆脱循环onDataChange
:
pwd.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot ds) {
String a = ds.child("jobno").getValue(String.class);
String b = ds.child("address").getValue(String.class);
String c = ds.child("model").getValue(String.class);
}
推荐阅读
- google-maps - 如何使用 VueJs 在谷歌地图中添加我的位置按钮?
- ios - 触发 iOS swift 的后台邮件
- spring-boot - Spring Boot 降级 postgres 版本
- java - 对象 [id=1] 不属于指定的子类
- regex - PowerShell 中的匹配字符串
- html - 重新定位后嵌入的视频移动
- .net - 来自 Visual Studio Xamarin 的相同源代码会在 iOS、Raspberry PI 和 LattePanda 上运行相同吗?
- azure - 如何在使用 ARM 模板部署 Azure Function 时添加 project.json 和 run.csx
- r - 如何降低 R 中的机器精度 .Machine$double.eps?
- android - 无法取消 Android 中的当前闹钟