【发布时间】:2021-03-26 09:20:18
【问题描述】:
在使用 Firebase CLI 部署 Firebase Functions 时,它们被配置为将 Cloud Functions Invoker 权限授予allUsers。通过这样的设置,下面的代码按预期运行。
Cloud Functions Invoker 权限也可以授予allAuthenticatedUsers。但是,当我为 addMessage 实施此更改时,我只会使用以下代码收到 UNAUTHENTICATED 错误响应。
为什么 allAuthenticatedUsers 不能用于这个 Firebase 云函数?
注意:此问答是 Furkan Yurdakul 发布的一个现已删除的问题的结果,该问题是关于为什么 allAuthenticatedUsers 没有为他的 Firebase 应用程序使用他的 Firebase 可调用函数
MWE 基于documentation,其中addMessage 定义为here:
firebase.auth().signInAnonymously() // for the sake of the MWE, this will normally be Facebook, Google, etc
.then((credential) => {
// logged in successfully, call my function
const addMessage = firebase.functions().httpsCallable('addMessage');
return addMessage({ text: messageText });
})
.then((result) => {
// Read result of the Cloud Function.
const sanitizedMessage = result.data.text;
alert('The sanitized message is: ' + sanitizedMessage);
})
.catch((error) => {
// something went wrong, keeping it simple for the MWE
const errorCode = error.code;
const errorMessage = error.message;
if (errorCode === 'auth/operation-not-allowed') {
alert('You must enable Anonymous auth in the Firebase Console.');
} else {
console.error(error);
}
});
【问题讨论】:
标签: javascript firebase firebase-authentication google-cloud-functions