1 回答

TA貢獻1789條經驗 獲得超10個贊
在沒有完整路徑的情況下,您無法在 Firebase 實時數據庫中使用查詢來獲取兩層深的對象。有一個解決方案,您可以在empresa節點上添加一個偵聽器并使用getValue()方法。它返回 aMap<String, Object>但不推薦,因為您正在獲取該節點內的所有數據。換句話說,這是對帶寬和資源的浪費。empresa一種解決方案可能是通過將節點添加為用戶對象的屬性來更改數據庫結構。
我將為您提供可以幫助您獲取該對象的代碼,但我鼓勵您找到更適合您要執行的查詢的更合適的數據庫模式。
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference empresaRef = rootRef.child("empresa");
ValueEventListener valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot ds : dataSnapshot.getChildren()) {
Map<String, Object> map = (Map<String, Object>) ds.getValue();
//Iterate through the map and get the results
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
Log.d(TAG, databaseError.getMessage()); //Don't ignore errors!
}
};
empresaRef.addListenerForSingleValueEvent(valueEventListener);
添加回答
舉報