【问题标题】:Firebase event to listen duplicate data监听重复数据的 Firebase 事件
【发布时间】:2017-10-16 18:44:37
【问题描述】:

是否有任何事件可以在每次更新时监听数据,无论它是否完全相同?

让我解释一下我想要实现的目标。

如果我每隔 1 秒设置如下所示的数据

写入数据

setInterval(() => {
  firebaseRef.child('liveUser').set({ userId: 1});
}, 1000);

如何在每次更新时收听 liveUser?现在,如果值重复,则使用我当前的实现 firebase stop .on('value') 事件。

读取数据

firebaseRef.child('liveUser').on('value', (snapshot) => {
  console.log(snapshot.val());
})

我知道使用带有 liveUser 对象的时间戳的替代解决方案,但如果 firebase 已经为重复数据提供了解决方案,这将很有帮助。

【问题讨论】:

  • 按照设计,只有在数据发生变化时才会调用监听器。将相同的数据写入同一位置不会更改数据,因此不会触发侦听器。正如您所建议的,您可以更新节点下的时间戳(或随机)值以强制侦听器触发。

标签: javascript firebase firebase-realtime-database


【解决方案1】:

根据设计,仅当数据更改时才会调用侦听器。将相同的数据写入同一位置不会更改数据,因此不会触发附加的侦听器。

要触发附加的侦听器,您需要对节点进行更改:

setInterval(() => {
  firebaseRef.child('liveUser').set({
    userId: 1,
    timestamp: Math.floor(Date.now())
  });
}, 1000);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-11-19
    • 1970-01-01
    • 1970-01-01
    • 2018-09-08
    • 1970-01-01
    • 1970-01-01
    • 2017-05-18
    相关资源
    最近更新 更多