【发布时间】:2020-10-24 11:00:34
【问题描述】:
我正在尝试添加自定义声明,isRegistered 到 firebase。我的 Firestore 有另一个 user 集合来保存注册信息记录。现在我正在尝试保留 isRegistered 自定义声明,但似乎无法正常工作。
exports.addRegisteredRole = functions.database.ref('/user')
.onCreate((snap, context) => {
return // **I added this later, but the issue still remains.**
admin.auth()
.setCustomUserClaims(context.auth.uid, {isRegistered: true})
.then(() => {
console.log('done', snap)
return {
message: 'done',
data: snap
}
})
.catch(err => {
console.log('something went wrong', err);
return err
})
});
我正在检查此声明,
currentUser.getIdTokenResult()
.then(res => {
console.log(res.claims.isRegistered)
})
(授权用户对象)。即使我重新登录它仍然未定义。我做错了什么吗,我对 firebase 很陌生。
【问题讨论】:
-
弗兰克是对的,你没有返回一个在异步工作完成后解决的承诺。从数据库触发器返回数据也没有任何意义。这些数据不会去任何地方或做任何事情。
-
是的,我解决了这个问题。但它给出了相同的结果。
-
不幸的是,“相同的结果”很难解决。究竟会发生什么?调用是否显示在函数日志输出中?你的
console.log语句出现了吗?
标签: reactjs firebase-realtime-database firebase-authentication google-cloud-functions firebase-admin