如何使用 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/json
或 application/json; charset=utf-8
,正文必须包含一个名为 data
用于要传递给方法的数据。
正文示例:
{
"data": {
"aString": "some string",
"anInt": 57,
"aFloat": 1.23
}
}
如果您通过创建自己的 http 请求来调用函数,您可能会发现使用常规 HTTPS 函数更灵活。
您可以使用 Firebase CLI firebase functions:shell
调用 onCall(..)
函数。
这种方法的一个重要好处是,从 shell 您可以 运行 本地环境中可用的功能。 - Firestore 调用等 - 无需将这些功能实际部署到云项目。
步骤:
- 运行命令:
firebase functions:shell
- 这会给你提示
firebase >
- 在提示符下调用 func,如果没有参数则传空 body
- firebase >
someFuncAbc({})
感谢在此主题中的回答:https://whosebug.com/a/62051894/2162226
是的,这个答案偏离了请求如何使用 HTTP 执行此操作的 OP .. 但在此处添加作为一种替代方法,只需从 CLI 进行调用,而无需设置 HTTP headers,设置 HTTP 客户端,如 curl
或 Postman 等
我意识到新的 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/json
或 application/json; charset=utf-8
,正文必须包含一个名为 data
用于要传递给方法的数据。
正文示例:
{
"data": {
"aString": "some string",
"anInt": 57,
"aFloat": 1.23
}
}
如果您通过创建自己的 http 请求来调用函数,您可能会发现使用常规 HTTPS 函数更灵活。
您可以使用 Firebase CLI firebase functions:shell
调用 onCall(..)
函数。
这种方法的一个重要好处是,从 shell 您可以 运行 本地环境中可用的功能。 - Firestore 调用等 - 无需将这些功能实际部署到云项目。
步骤:
- 运行命令:
firebase functions:shell
- 这会给你提示
firebase >
- 在提示符下调用 func,如果没有参数则传空 body
- firebase >
someFuncAbc({})
感谢在此主题中的回答:https://whosebug.com/a/62051894/2162226
是的,这个答案偏离了请求如何使用 HTTP 执行此操作的 OP .. 但在此处添加作为一种替代方法,只需从 CLI 进行调用,而无需设置 HTTP headers,设置 HTTP 客户端,如 curl
或 Postman 等