Javascript 用于侦听重复数据的Firebase事件
是否有任何事件监听每次更新的数据,无论数据是否完全相同 让我解释一下我想要实现的目标 如果我每1秒设置一次如下所示的数据 写入数据 如何在每次更新时收听liveUser?现在使用我当前的实现firebase stopJavascript 用于侦听重复数据的Firebase事件,javascript,firebase,firebase-realtime-database,Javascript,Firebase,Firebase Realtime Database,是否有任何事件监听每次更新的数据,无论数据是否完全相同 让我解释一下我想要实现的目标 如果我每1秒设置一次如下所示的数据 写入数据 如何在每次更新时收听liveUser?现在使用我当前的实现firebase stop.on('value')事件(如果值重复) 读取数据 我知道在liveUser对象中使用时间戳的替代解决方案,但如果firebase已经为重复数据提供了解决方案,这将非常有用。根据设计,只有在数据更改时才会调用侦听器。将相同的数据写入同一位置不会更改数据,因此不会触发附加的侦听器 要
.on('value')
事件(如果值重复)
读取数据
我知道在liveUser对象中使用时间戳的替代解决方案,但如果firebase已经为重复数据提供了解决方案,这将非常有用。根据设计,只有在数据更改时才会调用侦听器。将相同的数据写入同一位置不会更改数据,因此不会触发附加的侦听器 要触发连接的侦听器,需要对节点进行更改:
setInterval(() => {
firebaseRef.child('liveUser').set({
userId: 1,
timestamp: Math.floor(Date.now())
});
}, 1000);
根据设计,侦听器仅在数据更改时调用。将相同的数据写入同一位置不会更改数据,因此不会触发侦听器。正如您所建议的,您可以更新节点下的时间戳(或随机)值以强制侦听器触发。
firebaseRef.child('liveUser').on('value', (snapshot) => {
console.log(snapshot.val());
})
setInterval(() => {
firebaseRef.child('liveUser').set({
userId: 1,
timestamp: Math.floor(Date.now())
});
}, 1000);