向 Firebase https onRequest 云函数发送 webhook 请求得到 403 响应

Posted

技术标签:

【中文标题】向 Firebase https onRequest 云函数发送 webhook 请求得到 403 响应【英文标题】:Sending webhook request to firebase https onRequest cloud function got 403 response 【发布时间】:2020-07-08 09:54:37 【问题描述】:

我在 ABC 中将我的一个 firebase 云功能注册为 webhook URL。如果有任何事件,ABC 将向我的函数 URL 发送 webhook 请求。但是 webhook 请求总是得到 403 响应,而我的云函数从来没有被触发过。

所以我的问题是 Firebase 会阻止任何 IP 向云功能服务器发送请求吗?或者外部请求出现403错误是否有任何可能的原因?

谢谢!

【问题讨论】:

你现在所拥有的缺乏细节。如果您不愿意分享足够的详细信息让任何人重现该问题,您应该联系 Firebase 支持以寻求帮助。 support.google.com/firebase/contact/support 看来我必须授予 allUsers 权限才能成为 GCP 控制台中的云函数调用者。 【参考方案1】:

我从this post得到了答案

1. Go to the cloud function tab
2. Select your cloud function (check box)
3. Click "Add members" under Permissions tab in the right side
4. Enter "allUsers" under "New memebers"
5. Select Role as "Cloud Functions -> Cloud Functions Invoker"
6. Save
7. Test your cloud function by just pasting it in the browser

【讨论】:

使用 Firebase CLI 部署的函数不需要这些步骤。 CLI 会在第一次部署时自动添加 allUsers 权限。如果您观察到不同的情况,您应该将您的复制步骤发送给 Firebase 支持。 support.google.com/firebase/contact/support 当然。但事情是上面的步骤真正解决了问题。我会联系 Firebase 支持团队【参考方案2】:

我发现这很有帮助: https://cloud.google.com/functions/docs/securing/managing-access-iam#allowing_unauthenticated_function_invocation

Google 现在似乎要求将这些功能明确列入allUsers 用户的白名单...

【讨论】:

以上是关于向 Firebase https onRequest 云函数发送 webhook 请求得到 403 响应的主要内容,如果未能解决你的问题,请参考以下文章

Firebase 函数向主题发送消息

如何使用 Firebase 云功能向客户端(Swift)发送条带响应

是否可以为不活动实现自动注销功能?

Firebase:通过设备 ID 向 JavaScript 客户端(react-native)发送消息

Firebase 云消息传递如何在 Android 上运行

发送响应后继续执行(Cloud Functions for Firebase)