如何使用 HTTP 调用 Firebase 可调用函数?

How to call Firebase Callable Functions with HTTP?

我意识到新的 Callable Cloud Functions can still be called as if they were HTTP events,即它们仍然可以在 http://us-central1-$projectname.cloudfunctions.net/$functionname 下到达。这样做时,我在 Cloud Functions Log:

中收到一条错误消息
Request has invalid method. GET 

这意味着 HTTP-GET 不起作用,但是有没有办法调用这些函数?也许他们正在使用 HTTP-CONNECT.

编辑:协议的细节现在已经 formally documented

HTTPS 可调用函数必须使用 POST 方法调用,Content-Type 必须是 application/jsonapplication/json; charset=utf-8,正文必须包含一个名为 data 用于要传递给方法的数据。

正文示例:

{
    "data": {
        "aString": "some string",
        "anInt": 57,
        "aFloat": 1.23
    }
}

如果您通过创建自己的 http 请求来调用函数,您可能会发现使用常规 HTTPS 函数更灵活。

您可以使用 Firebase CLI firebase functions:shell 调用 onCall(..) 函数。

这种方法的一个重要好处是,从 shell 您可以 运行 本地环境中可用的功能。 - Firestore 调用等 - 无需将这些功能实际部署到云项目。

步骤:

  1. 运行命令:firebase functions:shell
  • 这会给你提示firebase >
  1. 在提示符下调用 func,如果没有参数则传空 body
  • firebase > someFuncAbc({})

感谢在此主题中的回答:https://whosebug.com/a/62051894/2162226

是的,这个答案偏离了请求如何使用 HTTP 执行此操作的 OP .. 但在此处添加作为一种替代方法,只需从 CLI 进行调用,而无需设置 HTTP headers,设置 HTTP 客户端,如 curlPostman