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()' –