首页 > 解决方案 > Firebase 延迟函数执行

问题描述

我有一个如下的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 方法,但我在某个地方出错了。

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

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

编辑:

这是我正在做的一个例子。

  1. 假设有两个布尔值 internet 和 location_monitor。两者最初都是由客户设置的。正在处理该位置以获取一些信息。客户端可以随时将两者都设置为 false。

  2. 客户端失去互联网连接。变量 internet 更改为 false。通过本地监控服务通知客户端互联网连接已丢失。

  3. 为客户端设置了一个超时时间来重新联机(比如说 5 秒)。如果客户端上线,则重新建立位置监控并继续处理。如果客户端未上线,则停止位置监控。当客户端在一天左右后上线时,位置监控将作为一个新的数据集启动。

标签: firebasefirebase-realtime-databasegoogle-cloud-functions

解决方案


推荐阅读