【问题标题】:How to call Firebase Callable Functions with HTTP?如何使用 HTTP 调用 Firebase 可调用函数?
【发布时间】:2018-09-03 16:46:26
【问题描述】:
我意识到新的Callable Cloud Functions 仍然可以像HTTP events 一样被调用,即仍然可以在http://us-central1-$projectname.cloudfunctions.net/$functionname 下访问它们。这样做时,我在 Cloud Functions 日志中收到一条错误消息:
Request has invalid method. GET
这意味着 HTTP-GET 不起作用,但是有没有办法调用这些函数?也许他们正在使用 HTTP-CONNECT。
【问题讨论】:
标签:
firebase
google-cloud-functions
http-get
【解决方案1】:
编辑:协议的详细信息现在是formally documented。
HTTPS Callable 函数必须使用POST 方法调用,Content-Type 必须是application/json 或application/json; charset=utf-8,并且主体必须包含一个名为data 的字段,以便将数据传递给该方法.
示例正文:
{
"data": {
"aString": "some string",
"anInt": 57,
"aFloat": 1.23
}
}
如果您通过创建自己的 http 请求来调用函数,您可能会发现改用常规 HTTPS 函数更灵活。
【解决方案2】:
您可以使用 Firebase CLI firebase functions:shell 调用 onCall(..) 函数。
这种方法的一个重要好处是,您可以从 shell 运行本地环境中可用的功能。 - Firestore 调用等 - 无需将这些功能实际部署到云项目中。
步骤:
- 运行cmd:
firebase functions:shell
- 在提示符处调用函数,如果没有参数则传递空体
感谢在这个帖子中回答:https://stackoverflow.com/a/62051894/2162226
是的,这个答案偏离了请求如何使用 HTTP 执行此操作的 OP .. 但在此处添加作为一种替代方式,只需从 CLI 进行调用,而无需设置 HTTP 标头,设置 HTTP 客户端,如curl 或邮递员等