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

时间:2017-04-26 06:23:29

标签: firebase

我目前遇到与本文所述完全相同的问题:

https://medium.com/@danbroadbent/firebase-multi-path-updates-updating-denormalized-data-in-multiple-locations-b433565fd8a5

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

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

有没有我可以实际运行多位置.update()而不覆盖所有相同级别的子节点?

1 个答案:

答案 0 :(得分:2)

基于此github问题:https://github.com/EddyVerbruggen/nativescript-plugin-firebase/issues/313

一种可能的解决方法是将每个要更新的字段定义为单独更新,并将其更新为原子更新的一部分,这样您实际上会更新需要更新的每个字段吗?

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

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

firebase.update(data);

因此,您无法更新整个对象,您需要定位该对象的各个字段。我只是测试了它,这很有效......