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

Fra*_*ñiz 8 javascript firebase google-cloud-functions google-cloud-firestore

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

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

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

有没有办法真正触发这些函数并通过参数向它们发送数据?或者说对于这种情况还有其他的处理方法吗?

Dou*_*son 9

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

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


Chr*_*son 5

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

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

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

...

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