我正在開發應用程序,我需要從firebase中提取特定值。對於這種情況,我需要拉「分數」,其中「uID」等於當前用戶標識。什麼是最好的方式來做到這一點。如何從firebase中提取特定值
謝謝你的幫助。
我正在開發應用程序,我需要從firebase中提取特定值。對於這種情況,我需要拉「分數」,其中「uID」等於當前用戶標識。什麼是最好的方式來做到這一點。如何從firebase中提取特定值
謝謝你的幫助。
Firebase將始終返回完整的節點。所以你不能只爲用戶返回分數。但是你可以通過使用火力地堡查詢返回的共同節點,無論是得分和用戶正在(一開始-K...
):
DatabaseReference leadersRef = FirebaseDatabase.getInstance().getReference("Leaders");
Query query = leadersRef.orderByChild("uID").equalTo("vUdnKx...");
query.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
for (DataSnapshot child: snapshot.getChildren()) {
System.out.println(child.getKey()+": "+child.child("Score").getValue(Long.class));
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
// Getting Post failed, log a message
Log.w(TAG, "onCancelled", databaseError.toException());
// ...
}
})
注意,代碼遍歷的結果snapshot
。這是因爲查詢可能會有多個結果。所以快照包含了這些結果的列表。即使只有一個結果,快照也會包含一個結果列表。
欲瞭解更多信息,請參閱Firebase documentation on handling lists和sorting and filtering data。
謝謝......它似乎我得到期望的結果 – MariusBrave
關於多個結果,每個用戶將只有一個領導「孩子」,所以它應該導致任何重大問題 – MariusBrave
Beeing一個JSON Database
,火力地堡不提供WHERE
條款。爲了實現此目的,您可以創建一個名爲Score_uID
的新字段,其值爲10_vUdnKxCSRegqruSAi1Ncz5HWPO
。有了這個新的功能,你可以只選擇那些具有「分數」的值,其中「uID」等於當前用戶標識。這是Firebase中的常見做法。希望能幫助到你。
檢查Firebase的Realtime-database Docs(https://firebase.google.com/docs/database/android/read-and-write)。
你會得到你的答案
而不是讓** Leaders-> key-> data **使它** Leaders-> user id-> key-> data **然後你可以簡單地爲你想要的用戶獲取數據 – AlwaysConfused
也許你有一些示例代碼?這將是一個很大的幫助 – MariusBrave
這很簡單,只需按照firebase文檔[這裏](https://firebase.google.com/docs/database/android/read-and-write),你就會得到它的權利。確保你有一個適當的數據庫構建我之前提到的 – AlwaysConfused