2015-12-02 40 views
2

我用的火力點(angularfire)在我的angularjs應用存儲和處理我的信息系統,但似乎無法弄清楚如何從火力文檔複製示例數據火力點 - angularfire設置對象鍵爲變量

// room members are easily accessible (or restricted) 
     // we also store these by room ID 
     "members": { 
     // we'll talk about indices like this below 
     "one": { 
      "mchen": true, 
      "hmadi": true 
     } 
     } 

這裏的members.one包含用戶名作爲密鑰,我試圖爲我的數據做到這一點,但似乎無法找出解決方案。

我的火力點數據的成員部分是像這樣:

members { one: { } }

我有兩個變量在$範圍設置。

user_name = kep; //person chatting with name 
sender_name = pek; //current user name 

所以我想用一組函數將數據插入members.one或在這種情況下members.user_name + ':' + sender_name但如果我有麻煩的是如何真正插入數據,而無需創建父對象。

ref.child('members').child(user_name + ':' + sender_name).set({ 
    user_name: true, sender_name: true 
}); 

當我嘗試將user_name和sender_name傳遞到set()函數是它得到的結果時出現問題。

members { "kep:pek": { user_name: true, sender_name: true }} 

那裏,我希望它是:

members { "kep:pek": { kep: true, pek: true }} 

如果我把user_name和SENDER_NAME成一個對象,然後運行與對象的set()函數傳遞,將創建下列結構是不是我正在尋找:

members { "kep:pek": { newObject: { kep: true, pek: true }}} 

回答

2

Firebase團隊成員在這裏。

Firebase數據庫只是一個JSON文檔。

所以我們說要組織你的數據是這樣的:

{ 
    "members" : { 
    "kep:pek" : { 
     "kep" : true, 
     "pek" : true 
    } 
    } 
} 

自定義密鑰是通過使用.child()方法創建,或者通過創建JavaScript對象的關鍵。

JSBin Demo

var rootRef = new Firebase('<my-firebase-app>'); 
var membersRef = rootRef.child('members'); 
var user_name = 'kep'; 
var sender_name = 'pek'; 
// child object to store custom keys 
var objectToSave = {}; 
// set keys in [] syntax 
objectToSave[user_name] = true; 
objectToSave[sender_name] = true; 
// use .child() with a formatted string to save the object 
membersRef.child(user_name + ':' + sender_name).set(objectToSave); 
+0

嗨大衛,感謝您抽出時間來幫助。我正在嘗試做以上的事情,但它是作爲一個對象插入的,而不僅僅是鍵值對。它像這樣插入'members.one.obj {user_name:true}'而不是'members.one {user_name:true}'用戶在點擊(聊天室)時生成,這就是爲什麼需要傳遞user_name和sender_name – Spade

+0

任何地方你需要一個可以使用'.child()'的鍵,然後在該路徑設置所需的數據。在一天結束時,所有東西都只是一個JSON對象。我更新了我的答案來表達這一點。 –

+0

當我使用上面的插入時,它創建了以下結構:'members:{one:{objectToSave:{「mchen」:true}}}'我想要的地方'成員:{one:{「mchen」:true}} '我唯一遇到的問題是,當像第二個例子那樣插入時,我如何傳遞user_name來顯示爲mchen? - @David East – Spade