Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.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
Firebase延迟函数执行_Firebase_Firebase Realtime Database_Google Cloud Functions - Fatal编程技术网

Firebase延迟函数执行

Firebase延迟函数执行,firebase,firebase-realtime-database,google-cloud-functions,Firebase,Firebase Realtime Database,Google Cloud Functions,我有一个firebase函数,如下所示: exports.myFunction = functions.database.ref('/users/{id}/').onWrite((snapshot, context) => { //do some processing here //wait for 5 seconds snapshot.after.ref.parent.once('value').then((newSnapshot) => { //do some pr

我有一个firebase函数,如下所示:

exports.myFunction = functions.database.ref('/users/{id}/').onWrite((snapshot, context) => {

//do some processing here

//wait for 5 seconds

snapshot.after.ref.parent.once('value').then((newSnapshot) => {
    //do some processing here
    //check for some CONDITION
});

//do some processing here

return snapshot.after.ref.set(true); //return this if the CONDITION has been satisfied
return null;    //return this if the CONDITION check fails
});
我无法找到适合此逻辑的实现。我遇到了两个问题

首先,我不知道如何通过等待5秒来延迟执行。我已经尝试过实现setTimeout方法,但在某个地方出了问题

其次,我不知道如何编程,以便根据内部函数中的条件检查传递适当的返回值

这是我第一次在firebase上工作,我对js还比较陌生,所以如果有任何帮助,我将不胜感激

编辑:

这是我正在做的一个例子

  • 让我们假设有两个布尔人互联网和位置监视器。两者最初都是真的,这是由客户端设置的。正在处理该位置以获取某些信息。客户机可以随时将两者设置为false

  • 客户端失去internet连接。变量internet已更改为false。通过本地监控服务通知客户端internet连接已断开

  • 为客户端重新联机设置了超时时间(比如说5秒)。如果客户端联机,将重新建立位置监视并继续处理。如果客户端未联机,则停止位置监视。当客户端在大约一天后联机时,位置监视将作为新数据集启动


  • 请解释为什么需要等待5秒钟。在云函数中,等待任何原因几乎肯定不是您想要做的事情。(请注意,运行该功能需要花费金钱,即使它正在等待。)\@DougStevenson我已经更新了这个问题。云功能如何知道客户端失去了互联网连接?客户端无法将变量internet更改为False,因为它没有internet访问权限。@LundinCast使用onDisconnect类。