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云函数中,如何运行计划的onRequest调用?_Firebase_Google Cloud Functions_Schedule - Fatal编程技术网

在firebase云函数中,如何运行计划的onRequest调用?

在firebase云函数中,如何运行计划的onRequest调用?,firebase,google-cloud-functions,schedule,Firebase,Google Cloud Functions,Schedule,我在计划的firebase函数中使用cors时遇到问题,例如,您有`functions.pubsub.schedule().timeZone().onRun(context=>{…});由于请求的原因,Response在onRun函数中不能作为参数使用 .onRequest((req,res),()=>{…})`pass req和res params我需要运行Cors函数,但不幸的是,我不能在计划的云函数中使用onRequest函数,而是需要运行它 我能做些什么来解决这个问题吗 下面是我在计划云

我在计划的firebase函数中使用cors时遇到问题,例如,您有`functions.pubsub.schedule().timeZone().onRun(context=>{…});由于请求的原因,Response在onRun函数中不能作为参数使用

.onRequest((req,res),()=>{…})`pass req和res params我需要运行Cors函数,但不幸的是,我不能在计划的云函数中使用onRequest函数,而是需要运行它

我能做些什么来解决这个问题吗

下面是我在计划云函数中尝试使用onRequest时收到的错误

TypeError: functions.pubsub.schedule(...).timeZone(...).onRequest is not a function
at Object.<anonymous> (C:\Users\Shann\Documents\KellyRecovery_Client\functions\index.js:306:10)
at Module._compile (module.js:652:30)
at Object.Module._extensions..js (module.js:663:10)
at Module.load (module.js:565:32)
at tryModuleLoad (module.js:505:12)
at Function.Module._load (module.js:497:3)
at Module.require (module.js:596:17)
at require (internal/module.js:11:18)
at C:\Users\Shann\AppData\Roaming\npm\node_modules\firebase-tools\lib\triggerParser.js:21:11
at Object.<anonymous> (C:\Users\Shann\AppData\Roaming\npm\node_modules\firebase-tools\lib\triggerParser.js:75:3)
TypeError:functions.pubsub.schedule(…).timeZone(…).onRequest不是函数
反对。(C:\Users\Shann\Documents\KellyRecovery\u Client\functions\index.js:306:10)
编译(Module.js:652:30)
在Object.Module.\u extensions..js(Module.js:663:10)
在Module.load(Module.js:565:32)
在tryModuleLoad时(module.js:505:12)
在Function.Module.\u加载(Module.js:497:3)
at Module.require(Module.js:596:17)
根据需要(内部/module.js:11:18)
在C:\Users\Shann\AppData\Roaming\npm\node\u modules\firebase tools\lib\triggerParser.js:21:11
反对。(C:\Users\Shann\AppData\Roaming\npm\node\u modules\firebase tools\lib\triggerParser.js:75:3)
这样做的总体目的是使用NodeEmailer每周安排发送电子邮件。如果电子邮件成功,您需要使用cors发送状态响应,否则您可能会收到重复或延迟的电子邮件。cors需要一个req和res,可以从OnRequest函数调用中获得,该函数不是pubsub调度器上的选项


因此,我正试图找到一个解决办法。

如果您想在GCP工作,可以使用CRON作业:


我相信您混淆了云平台为安排事件执行而提供的产品的用例

Cloud PubSub背后的思想是通过使用发布者/订阅者队列来解耦事件创建和事件执行,以便您可以创建任意数量的作业,并确保在某个时候它们将以异步方式进行处理,但并不打算指定何时执行。是常见的用例

另一个产品是云任务,其目的是存储由另一个源创建的事件,直到满足为其执行设置的条件。尽管它允许对任务何时运行进行细粒度控制,但它并不适用于定期计划的作业,因为每个任务都必须独立地推送到队列中。尽管如此,您还是可以看看它在哪里展示了如何使用应用程序引擎+云功能+云任务发送电子邮件


最后,正如Raphael所说,云调度器是最适合您的用例的选项,因为它旨在计划用户配置的定期事件执行。我建议您查看如何cron作业以及解释所有这些产品之间关键差异的页面。

请编辑您的问题,以包括您遇到的实际问题,因为现在很难理解我们可以如何提供帮助。我已经更新了我的问题,包括我得到的一个错误,谢谢。如果它解决了你的问题,请考虑接受其中一个答案,以提高在这个线程中共享的信息的可见性。