【问题标题】:Firebase realtime database triggers too many update eventsFirebase 实时数据库触发太多更新事件
【发布时间】:2021-09-27 17:31:00
【问题描述】:

我正在使用 NodeJS,并使用以下代码监听对象的更新:

let ref = mainRef.child("objectKey");
ref.on("value", (snapshot) => {
    console.log("update");
    console.log(snapshot.val());
});

然后我注意到,有时,单个更改会导致 14 或 15 次触发此事件,从而带来对象的最新状态,以及之前的一些状态。

上面的代码只运行一次,所以“value”事件没有多次注册。

有什么问题?

谢谢

【问题讨论】:

    标签: javascript node.js firebase firebase-realtime-database google-cloud-platform


    【解决方案1】:

    当我只更新 1 个项目的 1 个属性时,我认为我从 Firebase 收到 40 多条消息时遇到了同样的问题。

    原来不是 ref.on("value", ...) 监听器出了什么问题,而是触发 Firebase 实际更新的代码,触发了相同 AJAX 更新调用的一点 Javascript 被触发了很多次而不是一次。

    所以这是要检查的第一件事,可能会添加一些日志记录以确保在 Firebase 上更新值的代码只运行一次。

    【讨论】:

    • 谢谢。恐怕这也是我的情况
    【解决方案2】:

    在我的情况下,对于 一个 变化,我总是得到恰好 两个 事件。我用过

    firebase.database.ServerValue.TIMESTAMP

    从我的文档中删除服务器时间戳后,值事件每次更新只会触发一次。

    【讨论】:

      猜你喜欢
      • 2021-01-28
      • 2021-12-27
      • 2019-10-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-19
      • 1970-01-01
      • 2018-08-09
      相关资源
      最近更新 更多