我正在使用 angularfire2 使用 Angular6 应用程序。我在用户创建中将角色设置为自定义声明,但它似乎没有传播。
当我创建用户时,我将用户 ID、业务 ID 和角色发送到云函数:
出价>业务ID
角色 > 角色
req.body.uid > 用户标识
const customClaims = {
roles: { [bid]: urole }
}
admin.auth().setCustomUserClaims(req.body.uid, customClaims)
.then(result => {
res
.status(200)
.send()
})
问题是当对云函数的调用完成时,我想将用户重定向到要求用户拥有自定义声明集的路由,但它失败了。经过一些调试,我发现如果运行:
this.angularFireAuth.auth.currentUser.getIdTokenResult(true).then(result => {
return result.claims.roles
})
调用云函数“result.claims.roles”后立即未定义,但如果我刷新页面,“result.claims.roles”有我之前设置的数据。
我已经尝试过 reload 方法和 getIdToken(true) 但我遇到了同样的问题。
有没有办法避免刷新页面并获得自定义声明?
谢谢!