2017-08-04 122 views
0

我需要在Firebase中構建相同的結構。我如何創建一個新的節點terriangen,添加{key}並設置我的對象數據?Angular&Firebase:創建新節點

-usernames 
-{UID}  
    -mylibrary  
    -{key}  
    -terriangen  
    -{key}   
    type:mountain   
    name:1.png 

我的代碼:

const newObjRef = firebase.database() 
       .ref('usernames') 
       .child(userId) 
       .child('mylibrary/') 
       .push(); 
      newObjRef.set({ 
       type: terrainType, 
       name: terrainName 
      }); 

回答

0

你正在尋找一個多位置更新:

const newKey = firebase.database().ref().push.key; 
const updates = { }; 
updates["mylibrary/"+key] = { 
      type: terrainType, 
      name: terrainName 
     }; 
updates["terriangen/"+key] = { 
      type: terrainType, 
      name: terrainName 
     }; 
firebase.database() 
     .ref('usernames') 
     .child(userId) 
     .update(updates) 

最大的區別:

  • 我們預先生成的獨特的鑰匙,以便我們可以在兩個地點使用它
  • 我們將新數據的部分路徑移到密鑰中,以便我們可以執行所謂的多位置更新。這可確保libraryterriangen節點中的現有項目都不會被覆蓋。
+0

感謝您的回覆。但是我只需要創建一個新節點'terriangen'而不更新其他位置。所以,如果我正確地理解了你,我可以在沒有這個部分的情況下使用你的方法 - 「更新[」mylibrary /「+ key]'。我的新節點將被創建,對嗎? – Alexander