在实时数据库中更新子项?怎么样?

时间:2018-06-08 12:55:42

标签: firebase firebase-realtime-database google-cloud-functions

db structure

运行查询并在实时数据库中以下面的形式保存数据。每次查询运行时,它都会创建一个新节点,但我想要的是不需要为已有的电子邮件创建新节点,只需更新点(emailid1,emailid2等点)。如果emailid不在列表中,则创建一个新的电子邮件ID。

1 个答案:

答案 0 :(得分:1)

您应该使用update()方法。文档为herehere

  

set()方法相反,update()可以有选择地使用   仅更新当前位置的引用属性(而不是   替换当前位置的所有子属性。)

例如,您可以编写如下函数:

function updatePoints(itemId, newPoints) {

  //itemId = id of the node you want to update, e.g. -LEU3DUphg...
  //newPoints = the new points value

  var updates = {};
  updates['/.../' + itemId + '/points'] = newPoints; 

  return firebase.database().ref().update(updates);
}