2016-11-17 72 views
-1

我想更新一個節點的關鍵在火力地堡更改密鑰串中火力地堡目標C

gameList - root node 
Basketball - child node of gameList 
    addedBy: "xxx" - child node of key Basketball 
    gamename: "Basketball" - child node of key Basketball 

我的數據是這樣的。現在我可以更新孩子節點的值gamename(籃球)。但我無法更新密鑰BasketBall。

回答

1

Firebase沒有通過更新「重命名」部分路徑的概念。相反,您必須完全刪除現有節點並重新創建它。

你能做到這一點,像這樣:

var dbRef = firebase.database(); 
dbRef.child(gameList).once('value').then(function(snap) { 
    var data = snap.val(); 
    data.gamename = newgamename; 
    var update = {}; 
    update[gamename] = null; 
    update[newgamename] = data; 
    return dbRef.update(update); 
}); 

這將從gameList/gamename刪除信息並與gameList/newgamename一個新名稱重新填充它。

重要注意事項: 如果一個人可能一次編輯數據,上述解決方案是好的。如果沒有,您可能需要考慮使用非用戶控制的標識符,例如推送ID。