3
A
回答
13
要访问数据库中的值,请为该位置创建一个DatabaseReference
。以下是位置在数据库中三个参考:到/ZONES/ZONE_1
zone1NameRef
点
zonesRef
点/ZONES
zone1Ref
点/ZONES/ZONE_1/ZNAME
DatabaseReference zonesRef = FirebaseDatabase.getInstance().getReference("ZONES");
DatabaseReference zone1Ref = zonesRef.child("ZONE_1");
DatabaseReference zone1NameRef = zone1Ref.child("ZNAME");
在这个片段中
有关更多信息,请参阅Firebase documentation on getting a database reference。
您可以将侦听器附加到每个引用,以获取该位置的值。例如,为了获得/ZONES/ZONE_1/ZNAME
的价值:
zone1NameRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Log.i(TAG, dataSnapshot.getValue(String.class);
}
@Override
public void onCancelled(DatabaseError databaseError) {
Log.w(TAG, "onCancelled", databaseError.toException());
}
});
更多关于这种类型的读操作,见Firebase documentation on reading values。
如果您改为收听/ZONES/ZONE_1
,您将获得具有其所有属性的整个节点的DataSnapshot
。然后,使用DataSnapshot.child()
从它那里得到了ZNAME
:
zone1Ref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Log.i(TAG, dataSnapshot.child("ZNAME").getValue(String.class);
}
@Override
public void onCancelled(DatabaseError databaseError) {
Log.w(TAG, "onCancelled", databaseError.toException());
}
});
一个多层次,你可以听上/ZONES
,这将让你的快照与所有区域。由于这种处理多个孩子,则需要通过他们与循环DataSnapshot.getChildren()
:
zonesRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot zoneSnapshot: dataSnapshot.getChildren()) {
Log.i(TAG, zoneSnapshot.child("ZNAME").getValue(String.class);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
Log.w(TAG, "onCancelled", databaseError.toException());
}
});
更多相关信息,请参阅Firebase documentation on listening for lists of data。
最后,你可能想查询查找特定的区域,例如找到与区"ZCODE": "ECOR"
:
Query zonesQuery = zonesRef.orderByChild("ZCODE").equalTo("ECOR");
zonesQuery.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot zoneSnapshot: dataSnapshot.getChildren()) {
Log.i(TAG, zoneSnapshot.child("ZNAME").getValue(String.class);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
Log.w(TAG, "onCancelled", databaseError.toException());
}
});
要了解更多关于这一点,阅读Firebase documentation on sorting and filtering data。
相关问题
- 1. 如何从Firebase中检索所有孩子的价值?
- 2. 有价值的孩子的Firebase查询
- 3. Firebase,不能增加孩子的价值
- 4. 如何获取Firebase android中所有孩子的列表?
- 5. 从firebase获取价值
- 6. 从firebase获取孩子值到android应用程序
- 7. 如何使用HashMap从Android的Firebase中获取儿童孩子的数据?
- 8. Firebase Android获取儿童价值的子值
- 9. 获取Firebase中的所有子值android
- 10. Firebase获取子女孩的子女
- 11. Firebase从数组中获取价值
- 12. 如何从价值降序的Firebase中获取数据?
- 13. 如何从Xamarin的Firebase中获取价值?
- 14. 从孩子的子节点获取值
- 15. Firebase:在不知道密钥的情况下获取孩子的价值
- 16. 如何从孩子获得特定的儿童价值?
- 17. Java:如何从子类获取价值?
- 18. 获取所有用户在Firebase中的同一个孩子android
- 19. 取决于孩子的价值,以其他孩子的价值在火炉堡
- 20. 未从Firebase数据库获取价值
- 21. 从Firebase数据库获取价值
- 22. 从ListView中的textview获取价值Android
- 23. 在Android中从GestureOverlayView获取孩子
- 24. Firebase更新孩子的价值观正在消除子女
- 25. 如何获取ArrayList中提到的Android中的Firebase子项? [Android]
- 26. 获取div的孩子值
- 27. 如何从小孩的Firebase中获取数据?
- 28. 获取孩子的孩子
- 29. Firebase Android-如何从ValueEventListener中的另一个DatabaseReference获取值?
- 30. 从父代得到孩子的价值
到目前为止显示的任何代码?使用可以简单地在任何数据库引用上调用'child()' –