firebase - 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 比较陌生,所以任何帮助都将不胜感激。
编辑:
这是我正在做的一个例子。
假设有两个布尔值 internet 和 location_monitor。两者最初都是由客户设置的。正在处理该位置以获取一些信息。客户端可以随时将两者都设置为 false。
客户端失去互联网连接。变量 internet 更改为 false。通过本地监控服务通知客户端互联网连接已丢失。
为客户端设置了一个超时时间来重新联机(比如说 5 秒)。如果客户端上线,则重新建立位置监控并继续处理。如果客户端未上线,则停止位置监控。当客户端在一天左右后上线时,位置监控将作为一个新的数据集启动。
解决方案
推荐阅读
- javascript - 如何将 HTML 内容转换为带有图像的 PDF
- xcode - 带有 Xcode 生成器的 Cmake。如何将库添加到“使用库链接二进制文件”Xcode 项目部分
- html - 在另一个组件中重用一个组件但更改按钮名称(Angular 4+)?
- python - 如果 Python 中的 else 循环无法正常运行
- neo4j - Neo4j - 加载 CSV 和链关系
- javascript - 如何通过 Angular 自定义组件传递类
- javascript - discord.js 检查公会是否有一个具有特定名称的频道,如果有,则将该频道 ID 存储到一个变量中
- react-native - 是否可以将 onPress 事件添加到从 React Native 中的文件加载的 svg 图形?
- ruby - Jekyll 构建时间突然超长
- azure - Azure - 使用自定义域和 ssl 连接多个应用服务容器