延迟Google Cloud功能

时间:2018-12-13 15:28:18

标签: swift firebase google-cloud-functions

我有一个快速的iPhone应用程序与Google Firebase配对。在应用程序内,用户将完成一个动作(按一个按钮)。在这一点上,我想安排一个Google Firebase Function在用户操作后45分钟运行。但是,我希望在iPhone应用程序中完成另一项操作(按一个按钮)时可以取消此功能。我可以使用计时器迅速完成此操作,但是如果用户关闭应用程序,那将无法正常工作。

我不反对使用第三方调度程序或类似的程序。欢迎任何建议。

我研究了可能重复的问题和答案(Cloud Functions for Firebase trigger on time?)。但是,该答案中的大多数链接已被弃用且已过时。同样,这是指重复安排某些事情。例如,每小时,每天一次等...我希望在触发(用户操作)后45分钟安排该作业,并能够在45分钟内取消该作业。

4 个答案:

答案 0 :(得分:0)

没有内置的方法可以延迟云功能上的触发,或在特定延迟后重新触发。我想到使用Cloud Functions的最佳方法是设置一个定期触发,如下所示:Cloud Functions for Firebase trigger on time?。然后,在该定期触发器中,您确定必须运行哪些作业。

答案 1 :(得分:0)

只要您可以通过http请求调用Firebase函数,就可以使用https://delayedrequest.com

答案 2 :(得分:0)

我最近遇到了类似的问题,可以通过使用Cloud SchedulerFirestore来解决。我设置了一个作业,该作业每5分钟触发一次云功能,该功能将检查Firestore集合。它将在何时触发云功能时检索数据并触发它。这也取决于您希望时间触发的精确度。无缘无故地一直触发它并不是最佳选择,但就我而言,它确实有效。

答案 3 :(得分:0)

延迟 Cloud Task 对您有用吗?

您可以create a Cloud Task that is delayed 并通过 HTTP 触发器调用您的函数。如果您的用户执行您描述的第二个操作,则可以取消该任务。有许多用于 Cloud Tasks 的专用 client libraries,以及一个 REST API