如何/可以手动调用触发器Firebase函数?

时间:2018-09-20 01:30:54

标签: javascript firebase google-cloud-firestore google-cloud-functions

在我们的应用程序中,我们一直在使用可调用函数,由于我们仍在开发它,而且除我们之外没有用户在使用它,因此有时冷启动会令人头疼。

我们认为加快此过程的目的是在登录并打开应用程序时调用每个功能(目前数量不多,目前大约20个,我们的账单不会付诸东流)。只是返回一个空值,而不执行其中的任何其他代码。这将热加载它们,以便在接下来的几分钟内使用,避免冷启动,并允许我们快速轻松地测试我们的前端和后端代码。

但是,我们有一些触发功能,例如在创建后添加用户详细信息,这些功能确实具有冷启动功能,但是无法调用,因此我们无法“热加载”这些功能。

是否有任何方法可以实际触发这些功能并通过参数发送数据?还是有其他方法可以解决这种情况?

2 个答案:

答案 0 :(得分:3)

不基于HTTP的触发器称为“后台触发器”。没有提供一种方法来以编程方式触发部署到Cloud Functions的后台功能,而无需实际执行会触发该功能的操作。没有直接调用,就像使用本地仿真器时一样。

您将不得不想出一个看起来像真实事物的动作,但是其中包含一些数据表明不要对此采取行动。例如,使用特殊字段将数据添加到数据库中,该字段标识应禁止操作并立即将其删除。

答案 1 :(得分:1)

我发现一些documentation on direct triggers至少与我在Google Cloud functions console上的经验相符,其中可以手动触发功能。还有一个有趣的命令行示例,似乎可以为这些函数提供数据。请注意他们说的关于配额和发展与生产的关系,尽管我注意到您的问题是关于发展的。

  

为了支持快速迭代和调试,Cloud Functions提供了   命令行界面中的call命令和测试功能   在GCP控制台用户界面中。这使您可以直接调用函数   确保其行为符合预期。这导致该功能   立即执行,即使它可能已部署为响应   特定事件。

     

注意:直接触发器使用Call API。此API的配额有限   不能增加。用于测试和调试   并且不应在生产中使用。

     

...

     

gcloud functions call YOUR_FUNCTION_NAME --data '{"name":"Keyboard Cat"}'