数据结构:
root:
lists:
$list:
pass: "VALU"
规则结构:
"rules": {
"lists": {
"$list": {
".read": "auth.token.name === data.child('pass').val()"
}
}
}
Javascript:
firebase.auth().signInAnonymously();
firebase.auth().currentUser.updateProfile({
displayName: "VALU"
});
firebase.database().ref("lists/{$SomeList}").once('value').then([...]);
// Throws error: permission denied
我很困惑为什么权限被拒绝。我确保 displayName
和 pass
的值相同,因此我不确定为什么比较返回 false..
更新:当 displayName
更改时,安全规则中的 auth
变量似乎不会刷新,有关如何更改的任何想法解决这个问题吗?
最佳答案
在 updateProfile 后强制刷新用户的 token :
firebase.auth().currentUser.getToken(true)
idToken 将在之后更新。
关于javascript - 使用身份验证安全规则时 Firebase 读取权限被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41212619/