Firebase Firestore https可调用的云函数中的未授权错误

时间:2020-06-16 18:44:53

标签: firebase google-cloud-firestore google-cloud-functions

最近,我在移动应用程序中添加了几个新的可调用的Firebase云功能。稀疏是,一旦我部署并测试了我的功能,我就无法调用它们,并出现一个 UNAUTHENTICATED 错误。我重新部署了我所有的功能,但仍然可以调用旧的功能,而新的功能因未授权而失败。我做了一些研究,人们在谈论Node的版本。我升级了Node版本,但没有成功。我升级了firebase-functions版本和firebase-admin版本。没有运气。

我尝试浏览到我以前部署的较旧的可调用云功能之一的URL,并且可以。然后,我尝试浏览到新部署的https可调用firebase云功能。我在浏览器中看到了此消息:

您的客户端无权从此服务器获取URL / 功能名称

有什么想法吗?

谢谢

2 个答案:

答案 0 :(得分:1)

好,这是我发现的。

根据此页面:https://cloud.google.com/functions/docs/securing/managing-access-iam#allowing_unauthenticated_function_invocation

从2020年1月15日开始,HTTP功能需要通过以下方式进行身份验证: 默认。您可以指定函数是否允许未经身份验证 部署时或部署后调用。

这是您的工作:

1-浏览到上面的链接

2-找到“查看用户”部分,然后单击“转到Google Cloud Console”按钮。

enter image description here

3-在打开的屏幕上,您将看到已部署的云功能的列表。 选择引发 UNAUTHENTICATED 错误的代码。

单击显示在右窗格中的“添加成员”按钮。

enter image description here

4-选择“云功能调用者”角色

enter image description here

5-在“新成员”框中键入allusers。选择allUsers或allAuthenticatedUsers(尝试使用两者,看看哪个适合您)

enter image description here

6-点击“保存”

您现在应该可以调用firebase https可调用的云函数,并且UNAUTHENTICATED错误应该消失了。

答案 1 :(得分:0)

就我而言,我在 Flutter 应用程序中写错了函数名称

final callable = _functions.httpsCallable('wrong function name in here');