【问题标题】:Firebase set method erasing collection before population (using node.js)Firebase 设置方法在填充之前擦除集合(使用 node.js)
【发布时间】:2021-12-10 19:21:35
【问题描述】:

Tl;博士:

node.js (firebase-admin) 中实现,在(实时数据库)上使用set 方法时,它似乎首先清除集合,然后填充数据本身。

实际问题:

我们有一些代码是通过监听 firebase 中的特定集合来触发的。计算完成后,需要更新目标集合(使用set 方法)。我们观察到一些奇怪的行为,似乎正在清除目标集合,然后填充数据。

Firebase set 方法的预期行为是“计算”差异并执行更小、更精确的更新(例如删除某些键或更改它们的值)。

有人知道为什么会这样吗?

【问题讨论】:

    标签: node.js firebase firebase-realtime-database


    【解决方案1】:

    Tl;博士:

    我们的代码正在对同一个目标集合执行多次更新(sets 操作),其中一个正在清除所有数据,另一个正在填充它。

    实际答案:

    发现由于进行了一些更改,监听触发集合的代码运行了两次。两个版本同时运行,但结果不同(由于某些参数)。然后我们得到了这两行的竞态条件:

    ..ref(${targetCollection}).set(null)

    ..ref(${targetCollection}).set(newData)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-05-27
      • 2016-09-17
      • 1970-01-01
      • 2018-12-13
      • 1970-01-01
      • 1970-01-01
      • 2021-05-18
      • 2014-01-11
      相关资源
      最近更新 更多