繁体   English   中英

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

[英]How/Can I manually call a trigger Firebase Function?

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

我们认为加快这个过程的方法是在我们打开应用程序时,在登录之前调用每个函数(它们并不多,目前大约有 20 个,我们的账单不会去月球),然后只返回一个null 值而不在其中执行任何其他代码。 这将热加载它们以在接下来的几分钟内使用,避免冷启动并允许我们快速轻松地测试我们的前端 + 后端代码。

但是,我们有一些触发函数,比如创建后添加用户详细信息,确实有冷启动,但不能调用,所以我们不能“热加载它们”。

有没有办法实际触发这些功能并通过参数向它们发送数据? 或者这种情况还有其他方法吗?

不基于 HTTP 的触发器称为“后台触发器”。 Firebase 工具不提供以编程方式触发部署到 Cloud Functions 的后台函数的方法,而无需实际执行会触发它的操作。 没有直接调用,就像使用本地模拟器时那样。

如果您愿意采用 Google Cloud 工具,则可以使用 gcloud 命令行或 Google Cloud 控制台直接触发功能

我找到了一些关于直接触发器的文档,这些文档至少与我使用Google Cloud 函数控制台的经验相匹配,其中函数可以手动触发。 还有一个有趣的命令行示例,似乎可以为函数提供数据。 请注意他们对配额和开发与生产的看法,尽管我注意到您的问题是关于开发的。

为了支持快速迭代和调试,Cloud Functions 提供了命令行界面中的调用命令和 GCP Console UI 中的测试功能。 这允许您直接调用函数以确保它按预期运行。 这会导致函数立即执行,即使它可能已被部署以响应特定事件。

注意:直接触发器使用调用 API。 此 API 的配额有限,无法增加。 它用于测试和调试,不应在生产中使用。

...

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM