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