2017-04-26 75 views
1

目前我有相同的問題,因爲這篇文章中概述:火力地堡多位置更新覆蓋,而不是更新價值

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

目前火力地堡單個節點.update()功能不會覆蓋其他同級別子節點。

但是,當使用多位置ref.update()在同一級別的所有其他子節點都覆蓋,實質上充當.set()函數。

有沒有辦法實際運行多位置.update()而不覆蓋所有相同級別的子節點?

+0

請在您的問題中包含代表性的代碼和數據。 – cartant

+0

我有同樣的問題...... – kevinius

回答

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); 

因此,您無法更新完整的對象,您需要定位該對象的各個字段。我只是測試它,這工作...

+0

是的,我使用了相同的方法作爲解決方法。缺點是如果你在目標節點中有很多嵌套節點,那麼你需要手動輸入每個節點和它們的值,否則它們將被刪除。 – user2028856

+0

你應該儘量減少數據的嵌套,儘可能保持firebase數據庫儘可能平坦... – kevinius