Firebase多位置更新覆盖而不是更新值

Firebase多位置更新覆盖而不是更新值,firebase,Firebase,我目前的问题与本文中概述的完全相同: 目前,Firebase单节点.update()功能不会覆盖其他同级子节点 但是,当使用多位置ref.update()时,会覆盖同一级别中的所有其他子节点,基本上充当.set()函数 是否有某种方法可以在不覆盖所有相同级别的子节点的情况下运行多位置.update() 一种可能的解决方法是将每个要更新的字段定义为单独的更新,并将其作为原子更新的一部分进行更新,这样您就可以实际更新每个需要更新的字段了 var companiesPath = 'companies

我目前的问题与本文中概述的完全相同:

目前,Firebase单节点
.update()
功能不会覆盖其他同级子节点

但是,当使用多位置
ref.update()
时,会覆盖同一级别中的所有其他子节点,基本上充当
.set()
函数


是否有某种方法可以在不覆盖所有相同级别的子节点的情况下运行多位置
.update()

一种可能的解决方法是将每个要更新的字段定义为单独的更新,并将其作为原子更新的一部分进行更新,这样您就可以实际更新每个需要更新的字段了

var companiesPath = 'companies/company_name';
var usersPath = 'users/user_nickname';

var data = {};
data[companiesPath] = 'Best Company Name';
data[usersPath] = 'John';

firebase.update(data);

因此,您不能更新完整的对象,您需要以该对象的各个字段为目标。我刚刚测试了它,这很有效…

请在您的问题中包含代表性的代码和数据。我有相同的问题…是的,我使用了相同的方法作为解决方法。缺点是,如果目标节点中有许多嵌套节点,则需要手动输入每个节点及其值,否则它们将被删除。您应尽量减少数据嵌套,使firebase数据库尽可能平坦。。。