【问题标题】:How/Can I manually call a trigger Firebase Function?如何/我可以手动调用触发器 Firebase 函数?
【发布时间】:2019-02-24 05:48:59
【问题描述】:

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

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

    如果您愿意采用 Google Cloud 工具,可以use the gcloud command line or the Google Cloud console to trigger a function directly

    【讨论】:

      【解决方案2】:

      我发现了一些documentation on direct triggers,至少与我使用Google Cloud functions console 的经验相匹配,其中功能可以手动触发。还有一个有趣的命令行示例,看起来可以为函数提供数据。请注意他们对配额和开发与生产的看法,尽管我注意到您的问题是关于开发的。

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

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

      ...

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

      【讨论】:

        猜你喜欢
        • 2018-07-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-12-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-12-26
        相关资源
        最近更新 更多