Firebase事件用于侦听重复数据

时间:2017-10-16 08:57:02

标签: javascript firebase firebase-realtime-database

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

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

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

写入数据

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

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

读取数据

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

我知道在liveUser对象中使用timestamp的替代解决方案,但如果firebase已经为重复数据提供了解决方案,那将会很有帮助。

1 个答案:

答案 0 :(得分:2)

按照设计,只在数据更改时调用侦听器。将相同数据写入相同位置不会更改数据,因此不会触发附加的侦听器。

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

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