2017-04-04 52 views
0

我目前正在構建基於Firebase的Web應用,並希望用戶能夠創建和加入遊戲室。目前我有一個問題試圖找出如何創建其他人可以加入的房間。我想知道是否有人可以幫助我開始解決這個問題。只是一個FYI每個將創建和加入房間的用戶將擁有自己的帳戶,並擁有唯一的ID(如果有的話)使用Firebase爲網絡應用創建房間

+0

嗨,您可以啓動Firebase身份驗證:https://firebase.google.com/docs/auth/這意味着除非通過Firebase或您的應用和Firebase登錄,否則您的聊天室將無法訪問 –

+0

目前我擁有它,因此您必須登錄才能顯示創建或加入室的選項 – jhigg15

+0

好,那麼您的問題是什麼呢? –

回答

1

Firebase沒有任何房間的概念。有通過鍵值對處理代碼的父節點和子節點,非常類似於字典。

Firebase中也沒有用戶,除了在Firebase中創建新用戶並在服務器內部存儲新用戶時創建的用戶標識(uid)和關聯數據。該數據用於身份驗證。如果其他數據需要存儲在一個用戶的名字上,或許是在數據庫本身內部完成的。

保持簡單,讓我們說我們想存儲有關用戶和房間的信息。

users 
    uid_0 
    name: "Bill" 
    uid_1 
    name: "Ted" 
    uid_27 
    name: "The Doctor" 

uid是在新用戶在Firebase中創建帳戶時創建的。您的應用將收集Firebase提供的uid,並將其和任何其他用戶數據寫入用戶節點;在這種情況下是用戶名。

然後房間

rooms 
    room_0 
    room_name: "Phone Booth" 
    description: "Time travelling in style; Excellent!" 
    uid_0: true 
    uid_1: true 
    room_1 
    room_name: "Tardis" 
    description: "It's bigger on the inside" 
    uid_27: true 

在這種情況下room_0,電話亭,一直都比爾和泰德在它和room_1有醫生在裏面。

這不是構建數據的唯一方法,而且您的結構可能與此有很大不同,但它是一個開始的地方。

注意:鍵名應該總是使用push()創建。我用room_0等作爲佔位符。最佳做法是從其包含的數據中分離出主要父鍵的名稱。即不要用電子郵件地址等方式硬編碼鍵名 - 這是個壞消息。

+0

非常感謝,這有助於一噸。只是爲了澄清與用戶創建房間時會調用的push()函數。那麼房間會被分配一些值來指代正確的? – jhigg15

+0

@ jhigg15正確! – Jay