最近,我在移动应用程序中添加了几个新的可调用的Firebase云功能。稀疏是,一旦我部署并测试了我的功能,我就无法调用它们,并出现一个 UNAUTHENTICATED 错误。我重新部署了我所有的功能,但仍然可以调用旧的功能,而新的功能因未授权而失败。我做了一些研究,人们在谈论Node的版本。我升级了Node版本,但没有成功。我升级了firebase-functions版本和firebase-admin版本。没有运气。
我尝试浏览到我以前部署的较旧的可调用云功能之一的URL,并且可以。然后,我尝试浏览到新部署的https可调用firebase云功能。我在浏览器中看到了此消息:
您的客户端无权从此服务器获取URL / 功能名称。
有什么想法吗?
谢谢
答案 0 :(得分:1)
好,这是我发现的。
从2020年1月15日开始,HTTP功能需要通过以下方式进行身份验证: 默认。您可以指定函数是否允许未经身份验证 部署时或部署后调用。
这是您的工作:
1-浏览到上面的链接
2-找到“查看用户”部分,然后单击“转到Google Cloud Console”按钮。
3-在打开的屏幕上,您将看到已部署的云功能的列表。 选择引发 UNAUTHENTICATED 错误的代码。
单击显示在右窗格中的“添加成员”按钮。
4-选择“云功能调用者”角色
5-在“新成员”框中键入allusers。选择allUsers或allAuthenticatedUsers(尝试使用两者,看看哪个适合您)
6-点击“保存”
您现在应该可以调用firebase https可调用的云函数,并且UNAUTHENTICATED错误应该消失了。
答案 1 :(得分:0)
就我而言,我在 Flutter 应用程序中写错了函数名称
final callable = _functions.httpsCallable('wrong function name in here');