首页 > 解决方案 > 新创建的 Firebase 函数引发 UNAUTHENTICATED 错误

问题描述

我有一个包含 10 多个云功能的 Firebase 项目。今天我又添加了 3 个,但是所有三个新的都抛出了一个错误 UNAUTHENTICATED 而没有真正尝试点击该函数。(日志中没有函数调用的记录)。自从添加了以前的功能后,我没有对我的环境或 Firebase 项目进行任何更改。

我已经尝试重新部署项目中的所有功能,三个最新的功能继续失败,而之前的功能正常。我还验证了我使用的是 Node 8,因为使用 Node 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

标签: firebasegoogle-cloud-functions

解决方案


通过谷歌云文档:

自 2020 年 1 月 15 日起,HTTP 函数默认需要身份验证。您可以指定函数是否允许在部署时或部署后进行未经身份验证的调用。

解决方案是利用 Google Cloud 控制台(不是 Firebase 控制台)为allUsers新创建的函数添加权限。

https://cloud.google.com/functions/docs/securing/managing-access-iam#allowing_unauthenticated_function_invocation


推荐阅读