1 回答

TA貢獻(xiàn)1789條經(jīng)驗(yàn) 獲得超10個(gè)贊
在沒有完整路徑的情況下,您無(wú)法在 Firebase 實(shí)時(shí)數(shù)據(jù)庫(kù)中使用查詢來(lái)獲取兩層深的對(duì)象。有一個(gè)解決方案,您可以在empresa節(jié)點(diǎn)上添加一個(gè)偵聽器并使用getValue()方法。它返回 aMap<String, Object>但不推薦,因?yàn)槟讷@取該節(jié)點(diǎn)內(nèi)的所有數(shù)據(jù)。換句話說(shuō),這是對(duì)帶寬和資源的浪費(fèi)。empresa一種解決方案可能是通過將節(jié)點(diǎn)添加為用戶對(duì)象的屬性來(lái)更改數(shù)據(jù)庫(kù)結(jié)構(gòu)。
我將為您提供可以幫助您獲取該對(duì)象的代碼,但我鼓勵(lì)您找到更適合您要執(zhí)行的查詢的更合適的數(shù)據(jù)庫(kù)模式。
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);
添加回答
舉報(bào)