root:
lists:
$list:
pass: "VALU"
"rules": {
"lists": {
"$list": {
".read": "auth.token.name === data.child('pass').val()"
}
}
}
firebase.auth().signInAnonymously();
firebase.auth().currentUser.updateProfile({
displayName: "VALU"
});
firebase.database().ref("lists/{$SomeList}").once('value').then([...]);
// Throws error: permission denied
我很困惑为什么许可被拒绝。我确保displayName
和pass
的值相同,所以我不确定为什么比较返回false ..
更新:auth
更改时,安全规则中的displayName
变量似乎没有刷新,有关如何解决这个问题的想法吗?
答案 0 :(得分:0)
在updateProfile之后强制用户刷新令牌:
firebase.auth().currentUser.getToken(true)
之后将更新idToken。