我具有以下结构(比它复杂一点,具有多个级别和分支) 我在ZMainBranch上有一个侦听器,在下面等待不同级别的更新。
我有一个基于在另一个分支上更改的数据的函数,它会在ZMainBranch下更新此属性。
问题在于ZMainBranch上的更新是通过多个步骤完成的,这会多次调用ZMainBranch上的侦听器。
我想要的是一次完成所有更新,因此侦听器只会被调用一次。
一种解决方案是在ZMainBranch级别进行更新,但这需要读取孔数据,对其进行映射,更改需要更改的内容然后再进行写入,这对于分支下的任何更改都可以做很多事情。
答案 0 :(得分:0)
如果在一个位置下执行多次写入,则可以期望该位置处的活动侦听器可以被多次调用。要避免这种情况,您无能为力。
您的替代方法是将您对不同子级的所有写入合并到一个多位置更新中。只要您的所有客户都在该位置进行写操作,就可以使用事务。
了解多地点更新:
https://firebase.googleblog.com/2015/09/introducing-multi-location-updates-and_86.html