2017-05-19 38 views
0

我試圖弄清楚如何獲取列表以根據需要進行查詢時遇到問題。充分披露,這可能是不可能的,如果是這樣的話,至少它會給我提供一些結論。我想根據在線狀態查詢朋友的列表,在哪裏查詢活躍的朋友。

這裏是我的數據庫結構:

friendships 
    $UID 
     $UID: true 

users 
    $UID 
    active:true/false 

我需要保持同步列表,所以我需要使用.on('value')。我已經使用child_added以及使用snapshot.forEach()通過snapshot迭代和推動childSnapshot key:value雙到一個數組,所以我可以再使用lodash命令通過在客戶端的active鍵列表中嘗試了不同的方法,但跑進它會將每個active值的「新」項目推入陣列,因此對於任何給定的用戶都會有多個項目。

任何幫助或洞察力,將不勝感激,花費了多數昨天嘗試使用下面的代碼訴諸回到一個無組織的清單之前,想出解決辦法:

const {currentUser} = firebase.auth(); 
firebase.database().ref(`/friendships/${currentUser.uid}`).on('value, snapshot => { //redux dispatch action, payload: snapshot.val() }) 

回答

0

有對此沒有很好的解決方案。 Firebase沒有任何類型的加入或加入查詢,因此您可以執行usersRef.orderByChild('active').equalTo(true),但這隻會返回所有活動用戶。你需要做單獨的查詢來吸引他們的友誼。