Firebase云函数:在指定的时间间隔后生成快照

Firebase云函数:在指定的时间间隔后生成快照,firebase,firebase-realtime-database,google-cloud-functions,Firebase,Firebase Realtime Database,Google Cloud Functions,我正在编写一个在实时数据库中触发onWrite事件的云函数。但是,我希望保持函数的执行几秒钟,然后检查几个变量的值。但是,我将在函数开始运行时收到快照,对吗?是否有任何方法可以让系统在触发后等待,然后在3秒钟后从数据库中获取数据值并根据需要进行处理?或者我是否可以在3秒钟后重新生成一个新的快照并使用它?传递到函数中的快照包含触发函数时存在的值 如果要在几秒钟后获取当前值,可以加载它: snapshot.ref.once("value").then((newSnapshot) => {

我正在编写一个在实时数据库中触发onWrite事件的云函数。但是,我希望保持函数的执行几秒钟,然后检查几个变量的值。但是,我将在函数开始运行时收到快照,对吗?是否有任何方法可以让系统在触发后等待,然后在3秒钟后从数据库中获取数据值并根据需要进行处理?或者我是否可以在3秒钟后重新生成一个新的快照并使用它?

传递到函数中的快照包含触发函数时存在的值

如果要在几秒钟后获取当前值,可以加载它:

snapshot.ref.once("value").then((newSnapshot) => {
  ... in here you can check newSnapshot.val()
})

关于如何获取当前值的答案如下。但这听起来像是一个问题,所以我不确定这个答案是否解决了您的根本问题。参数值代表什么?另外,要获取父对象的快照,我应该将其加载为snapshot.ref.parent.once。。。。。。正当或者还有其他方法吗?该值是您可以侦听的事件类型之一。这是一个相当基本的Firebase数据库操作,所以我建议您在上查看它。我照您说的做了。我实现了这个:var编号;snapshot.after.ref.parent.once'value'。thennewSnapshot=>{number=newSnapshot.child'phone_number'.val;};console.lognumber;然而,我得到的数字始终是未定义的。为什么呢?如果我把日志语句放在then…,我会得到一个正确的答案,因为数据是异步加载的。newSnapshot的值仅在回调中可用。是的,但我正在提取phone_number的值并将其传递给名为number的外部变量,对吗?