我想在触发函数中设置CustomUserClaims,但随后出现此错误
这是我的代码:
exports.onCreateCompaniesByUserFunction =
functions.firestore.document('/companiesByUser/{userId}').onWrite((change, context) => {
const { userId } = context.params;
const document = change.after.exists ? change.after.data() : null;
console.log('document',document)
let owner = []
let employee = []
let editor = []
Object.keys(document).map(key => {
if (document[key] == 'affiliate' || document[key] == 'employee') {
employee.push( key )
} else if (document[key] == 'owner') {
owner.push( key )
} else if (document[key] == 'editor') {
editor.push( key )
}
});
console.log('owner',owner)
console.log('employee',employee)
console.log('editor',editor)
console.log('before the claims 2',userId)
return admin.auth().setCustomUserClaims(userId, {employee, owner, editor})
.then(() => {
console.log('claim set successfully!');
return true;
})
.catch((error) => {
console.log('in error',error);
});
});
根据该UserId存在,但在日志中,这表示没有用户对应。
答案 0 :(得分:1)
您确定使用的数据库配置正确吗?也许您忘了将连接从暂存更改为生产。您应该仔细检查数据库配置(通常在functions/index.js
中):
admin.initializeApp({
credential: YOUR_CREDENTIAL_FILE,
databaseURL: 'YOUR_DATABSE_URL',
...
});
答案 1 :(得分:1)
尝试点击 Firebase 主屏幕右侧的“身份验证”。然后,点击“开始使用”。
启用您正在使用的所有登录方法。
这为我解决了问题。