Firebase多路径更新将父节点设置为null

时间:2019-06-27 09:59:06

标签: node.js firebase firebase-realtime-database

我正在尝试使用Firebase实时数据库多路径更新。 但是,如下所示尝试将父节点设置为null将会导致错误。

const firebaseUpdate = {}
firebaseUpdate[`user/${uid}`] = null
db.ref().update(firebaseUpdate) 
  

错误:Reference.update失败:第一个参数包含路径/ user / USER_ID       那是另一个路径/ user / USER_ID / creationTime的祖先

我想知道是否有一种方法可以使用多路径更新来将具有多个子节点的父节点设置为null。 我假设我可以使用remove或set函数,但我宁愿使用多路径更新。

1 个答案:

答案 0 :(得分:1)

错误消息表明您正在尝试通过一项操作将两个冲突的更新应用于数据库。如消息所示,您的更新尝试执行以下操作:

  1. 写入/user/USER_ID
  2. 写入/user/USER_ID/creationTime

第二个写是第一个写的子代。由于未指定多位置写入的顺序,因此无法说出写入操作的结果。

如果要将/user/USER_ID当前存在的任何数据替换为creationTime,则应像这样更新它:

db.ref().update({
  "/user/USER_ID": { creationTime: Date.now() }
})