0
我在構建用於選擇Firebase數據庫中的數據的查詢時遇到一些困難。 我的數據庫結構是這樣的:通過內部字段選擇Firebase數據庫
我需要得到具有接觸ghopper所有用戶。這裏的結果是alovelace和eclarke。但我真的不知道如何在Java中做這個簡單的查詢。
謝謝你的幫助!
我在構建用於選擇Firebase數據庫中的數據的查詢時遇到一些困難。 我的數據庫結構是這樣的:通過內部字段選擇Firebase數據庫
我需要得到具有接觸ghopper所有用戶。這裏的結果是alovelace和eclarke。但我真的不知道如何在Java中做這個簡單的查詢。
謝謝你的幫助!
你會使用火力地堡數據庫查詢爲:
DatabaseReference usersRef = FirebaseDatabase.getInstance().ref("users");
Query query = usersRef.orderByChild("contacts/ghopper").equalTo(true);
// My top posts by number of stars
query.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot snapshot: dataSnapshot.getChildren()) {
System.out.println(snapshot.getKey());
}
}
但這需要你定義一個索引爲每個用戶,它不能擴展。這是因爲你現在擁有的結構可以讓你輕鬆確定聊天室的用戶,而你正在嘗試相反的方式。
爲了有效地允許爲用戶獲取聊天室,您應該構造數據,以便其也保留每個聊天室的用戶列表。這通常被稱爲次要/顛倒/倒排索引。
對於本見的例子:
謝謝,其實我疑惑,我應該在這裏使用的結構。 將完整數據存儲到聯繫人(例如姓名)是否更好? – Binev