2016-12-11 97 views
0

存儲讓用戶在數組中或只是對象存儲更好嗎?我想創建獨特的密鑰,但我看到陣列將是一件麻煩事。存儲在firebase中,對象vs陣列

我的另一個問題是,最好是保留該房間內的特定房間或房間外的其他物體的用戶列表以鏈接到該房間?

+1

閱讀Firebase文檔,從在線教程中學習。因爲我知道您對Firebase完全陌生。 Firebase是一個NOSql數據庫,不是RDBMS。事情在這裏有很大的不同。沒有表,沒有主鍵,外鍵,沒有數組。這都只是對象。我從這裏開始https://www.youtube.com/playlist?list=PLGCjwl1RrtcTXrWuRTa59RyRmQ4OedWrt –

+0

我比較新,但不是全新的。實際上有鑰匙,實際上有數組在火力點 –

+0

我一直在使用到現在爲止,但數組似乎並沒有像下面的答案一樣。 –

回答

2

請不要使用數組,除非你真的需要。它們的使用情況最好,通常有更好的方法來存儲數據。查看回答這個問題雨燕,它可能有助於有點

Retrieving an array

陣在火力地堡不喜歡代碼的數組。沒有插入,更新或刪除。這些功能不能訪問單個元素 - 如果發生更改,整個陣列必須重新寫入,因此它的使用受到限制。

對於問題的第二部分:Firebase的典型設計模式是利用/ users節點並在其他節點中保留對用戶id(uid)的引用。

users 
    firebase_uid_0 
    name: "Biff" 
    email: "[email protected]" 
    firebase_uid_1 
    name: "Leroy" 
    email: "[email protected]" 

此結構和用法在Firebase文檔中以及在stackoverflow上的許多時間都包含在內。

這樣一個可能的結構

rooms 
    room_0 
    users 
    firebase_uid_0: true 
    room_1 
    users 
    firebase_uid_1: true 
    room_2 
    users 
    firebase_uid_0: true 
    firebase_uid_1: true 

room_0 has uid_0 in it but not uid_1 
room_1 has uid_1 in it but not uid_0 
room_2 has both users in it 

話雖這麼說,答案是真的取決於你的使用情況。如果結構比我建議的結構更深,那麼您可能需要對數據進行非規範化處理。如果您需要在更深層次上運行查詢,則可能還需要考慮替代結構。

+0

謝謝,這很有意義。是的,我只是要堅持對象。 –