Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用于侦听重复数据的Firebase事件_Javascript_Firebase_Firebase Realtime Database - Fatal编程技术网

Javascript 用于侦听重复数据的Firebase事件

Javascript 用于侦听重复数据的Firebase事件,javascript,firebase,firebase-realtime-database,Javascript,Firebase,Firebase Realtime Database,是否有任何事件监听每次更新的数据,无论数据是否完全相同 让我解释一下我想要实现的目标 如果我每1秒设置一次如下所示的数据 写入数据 如何在每次更新时收听liveUser?现在使用我当前的实现firebase stop.on('value')事件(如果值重复) 读取数据 我知道在liveUser对象中使用时间戳的替代解决方案,但如果firebase已经为重复数据提供了解决方案,这将非常有用。根据设计,只有在数据更改时才会调用侦听器。将相同的数据写入同一位置不会更改数据,因此不会触发附加的侦听器 要

是否有任何事件监听每次更新的数据,无论数据是否完全相同

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

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

写入数据 如何在每次更新时收听liveUser?现在使用我当前的实现firebase stop
.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);