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

cre*_*not 14 http-get firebase google-cloud-functions

我意识到仍然可以调用新的Callable Cloud Functions,就像它们是HTTP事件一样,即它们仍然可以在下面进行调用http://us-central1-$projectname.cloudfunctions.net/$functionname.这样做时,我在云功能日志中收到错误消息:

Request has invalid method. GET 
Run Code Online (Sandbox Code Playgroud)

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

bkl*_*imt 24

编辑:协议的详细信息现已正式记录.

必须使用POST方法调用HTTPS可调用函数,Content-Type必须为application/jsonapplication/json; charset=utf-8,并且正文必须包含一个调用的字段,data以便将数据传递给方法.

示例正文:

{
    "data": {
        "aString": "some string",
        "anInt": 57,
        "aFloat": 1.23,
    }
}
Run Code Online (Sandbox Code Playgroud)

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


Gen*_* Bo 8

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

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

脚步:

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

感谢在此线程中回答:https : //stackoverflow.com/a/62051894/2162226

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