代码之家  ›  专栏  ›  技术社区  ›  Mocas

更新firebase中的多个节点,但仅通知侦听器一次

  •  0
  • Mocas  · 技术社区  · 6 年前

    我有以下的结构(比这复杂一点,有多个层次和分支) 我在zmainbranch有一个监听器,在下面等待不同级别的更新。

    我有一个基于在不同分支上更改的数据的函数,它在zmainbranch下更新这个属性。

    问题是ZmainBranch的更新是在多个步骤上完成的,这将多次调用ZmainBranch上的侦听器。

    enter image description here

    我想要做的是一次性完成所有更新,这样侦听器只会被调用一次。

    一种解决方案是在zmainbranch级别进行更新,但这需要读取孔数据,映射它,更改需要更改的内容,然后写入,对于分支下的一些小更改,这是非常需要做的。

    1 回复  |  直到 6 年前
        1
  •  0
  •   Doug Stevenson    6 年前

    如果在一个位置下执行多个写入,则可以期望该位置的活动侦听器可以多次被调用。为了避免这种情况,你没什么办法。

    另一种方法是将所有对不同子级的写入操作折叠成一个多位置的更新。也可以使用事务,只要您的所有客户机都在该位置的写操作上进行协调。

    了解多位置更新:

    https://firebase.googleblog.com/2015/09/introducing-multi-location-updates-and_86.html