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 android中所有孩子的列表?
- 4. Firebase Android获取儿童价值的子值
- 5. 获取Firebase中的所有子值android
- 6. Firebase获取子女孩的子女
- 7. 从孩子的子节点获取值
- 8. 如何从Xamarin的Firebase中获取价值?
- 9. 如何从价值降序的Firebase中获取数据?
- 10. 如何从孩子获得特定的儿童价值?
- 11. Firebase:在不知道密钥的情况下获取孩子的价值
- 12. Java:如何从子类获取价值?
- 13. 取决于孩子的价值,以其他孩子的价值在火炉堡
- 14. 获取所有用户在Firebase中的同一个孩子android
- 15. 从Firebase数据库获取价值
- 16. 获取div的孩子值
- 17. Firebase更新孩子的价值观正在消除子女
- 18. 从父代得到孩子的价值
- 19. 如何寻找孩子的价值观火力的Android
- 20. 如何从Android中的FCM数据消息中获取价值?
- 21. 如何从小孩的Firebase中获取数据?
- 22. Firebase Android-如何从ValueEventListener中的另一个DatabaseReference获取值?
- 23. 当孩子从表嵌套时如何获取firebase中的数据
- 24. 获取没有孩子的XElements的价值
- 25. Firebase规则来访问特定的孩子的价值
- 26. Firebase,根据孩子的价值找到父母的关键
- 27. 如何总结Linq中的扩展孩子的孩子的价值观
- 28. 如何从对象中获取值Firebase
- 29. 如何从firebase中获取父值java
- 30. 如何从TimePicker中获取Android的价值时间
到目前为止显示的任何代码?使用可以简单地在任何数据库引用上调用'child()' –