Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.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 我可以在设置时添加查询条件吗?_Javascript_Firebase_Firebase Realtime Database - Fatal编程技术网

Javascript 我可以在设置时添加查询条件吗?

Javascript 我可以在设置时添加查询条件吗?,javascript,firebase,firebase-realtime-database,Javascript,Firebase,Firebase Realtime Database,我想在listener上进行设置,以检查是否有新对象添加到视频中。当一个新视频添加到videosref时,此侦听器是否会捕获此事件?谢谢 admin .database() .ref("videos") .orderByChild("createdAt") .limitToLast(1) .on("value", snapshot => { }); 是的,如果与视

我想在listener上进行设置,以检查是否有新对象添加到
视频中。当一个新视频添加到
videos
ref时,此侦听器是否会捕获此事件?谢谢

  admin
    .database()
    .ref("videos")
    .orderByChild("createdAt")
    .limitToLast(1)
    .on("value", snapshot => {
      
    });

是的,如果与视频下的所有其他子项相比,它的createdAt值最高。但是,完全可能的情况是,侦听器在出现竞争条件时会错过一个孩子,或者在几次更新过程中离线


请记住,实时数据库不会向客户端发送“事件”。它同步数据。你不能保证每一个新的视频都会在你的听众中作为一个独特的“事件”出现。如果您想以一种更合理、更具驱动力的方式处理数据库写入,您应该在后端设置一些东西来响应更改,然后根据需要将其反映给客户端。

谢谢Doug!我有云功能将新的视频对象添加到实时数据库中。我需要在客户端查询数据库,以确保数据库被真正添加。所以我认为.on听众可能会有所帮助。如果不能保证,我可以在循环中使用.once(“value”)查询来检查数据库中是否有新的视频吗?如果客户端知道它在寻找什么,它应该使用它来识别要等待的东西,而不是时间戳。为此使用唯一ID是非常常见的。当客户机和服务器在一个ID上达成一致时,这就成为服务器通知客户机某些有趣的更改的交换点。道格,这完全有道理!再次感谢!