我有一个Firebase项目,有超过10个云函数。今天我又添加了3个,但是这3个新函数都抛出了一个错误UNAUTHENTICATED,而实际上并没有尝试命中函数。(日志中没有函数调用的记录)。自从添加了以前的函数后,我还没有对我的环境或Firebase项目做过任何更改。
我尝试重新部署项目中的所有函数,最新的三个函数仍然失败,而以前的函数工作正常。我还验证了我使用的是节点8,因为报告了一些类似的问题源于使用节点10。我不确定还能尝试什么,因为问题只适用于新函数。
所有新函数都具有类似的签名:
exports.createGroup = functions.https.onCall((data, context) => {
//Firestore access
});
他们被这样称呼:
const create = functions().httpsCallable('createGroup');
return create({ group: oGroup }).then(result => {
//Do something
}).catch(err => {
console.log(err.message); //UNAUTHENTICATED
});
节点版本:8.16.2
Firebase工具版本:7.6.1
5条答案
按热度按时间jm2pwxwz1#
它必须在您的GCP控制台(而不是Firebase)上解决。只需按照以下步骤操作:
1.转到您的GCP Console并登录
1.在顶部菜单中,选择相应的Firebase项目
1.在左侧菜单上,转到Cloud Functions点击您的函数的复选框(不是函数的名称)
1.选择后,在右侧菜单中选择“添加成员”
1.在“新建成员”中键入allUsers
1.在选择功能栏上,选择云函数-〉云函数调用器
1.点击“保存”,然后在弹出的警告“允许公共访问”,你就可以走了!
ryevplcw2#
2022更新
h22fl7wq3#
通过Google云文档:
自2020年1月15日起,HTTP函数默认要求身份验证。您可以指定函数是否允许在部署时或部署后进行未经身份验证的调用。
解决方案是利用Google Cloud控制台(而不是Firebase控制台)向新创建的函数添加
allUsers
权限。https://cloud.google.com/functions/docs/securing/managing-access-iam#allowing_unauthenticated_function_invocation
ar7v8xwq4#
我在部署多个功能时遇到此错误,并且在上传过程中出现问题,似乎部署已损坏 *..可能与网络有关,不确定 *
在Firebase控制台中删除有问题的云函数,然后对其进行新的成功部署后,**“FirebaseFunctionsException UNAUTHENTICATED”**错误消失
首先,我尝试重新部署函数,但这还不够,错误继续这样
js4nwp545#
从第二代云函数的文档中:
1.转到Google Cloud console
1.单击要授予访问权限的函数的链接名称。
1.单击“功能详细信息概述”页面右上角的Powered By Cloud Run链接。
1.单击触发器并选择允许未经身份验证的调用。
1.单击保存。
在尝试添加allUsers并得到“类型allUsers和allAuthenticatedUsers的主体无法添加到此资源”后,我花了很长时间才找到这个。