2016-11-12 111 views
0

是否可以從Firebase中檢索以逗號分隔的多個節點?Firebase:檢索多個節點

例如,使用得到用戶的nameimage屬性:

/users/$USER_ID/name,image

,而不是下載的所有用戶信息

+1

如果您願意使用2個網絡電話,您可以將孩子直接放入每個節點。 – Linxy

回答

1

Firebase SDK始終從數據庫中檢索完整節點。沒有辦法選擇節點的一個子集。

如果你找到你想要的節點的子集,並且下載所有的節點都過於浪費,你應該模擬你的數據有一個額外的集合,其中只保留你想爲每個用戶的屬性:

user 
    uid1 
    name: "TheUnreal" 
    image: "https://graph.facebook.com/1214076718653094/picture?type=large" 
    stackid: 3669981 
    lastquestionid: 40565750 
    uid2 
    name: "Frank van Puffelen" 
    image: "https://www.gravatar.com/avatar/12d378e6a9788ab9c94bbafe242b82b4?s=48&d=identicon&r=PG" 
    stackid: 209103 
    lastquestionid: 39984247 
users_names_images 
    uid1 
    name: "TheUnreal" 
    image: "https://graph.facebook.com/1214076718653094/picture?type=large" 
    uid2 
    name: "Frank van Puffelen" 
    image: "https://www.gravatar.com/avatar/12d378e6a9788ab9c94bbafe242b82b4?s=48&d=identicon&r=PG" 

使用此數據結構,您可以通過查詢相應的頂級節點來選擇是獲取數據的子集還是完整的數據。像這樣複製數據在NoSQL數據庫中相當常見,在這些數據庫中,您經常對數據進行建模以瞭解您的應用程序如何使用它。

+0

這是我想到的唯一方法,但缺點是每當用戶更新他的圖像或名稱時更新這2個節點。如果我可以選擇我想要的節點,則不需要額外的節點。我一直在考慮向Firebase發送功能請求,但它可能會鼓勵以不同方式構建數據庫結構 – TheUnreal

+0

*披露:我致力於Firebase *絕對[提出功能請求](https://firebase.google.com性/支撐性/接觸/錯誤的功能/)。但是,即使我們決定在某個時候實施它,那對今天也無濟於事。在Firebase等NoSQL數據庫中複製數據是完全正常的,這也是它們擴展得很好的原因之一。 –

0

您可以檢索使用類的節點。我這樣做。你爲什麼不操縱返回的值,以便能夠使用它。