使用身份验证安全规则时,Firebase读取权限被拒绝

时间:2016-12-18 20:36:21

标签: javascript firebase firebase-realtime-database firebase-authentication firebase-security

数据结构:

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

我很困惑为什么许可被拒绝。我确保displayNamepass的值相同,所以我不确定为什么比较返回false ..

更新auth更改时,安全规则中的displayName变量似乎没有刷新,有关如何解决这个问题的想法吗?

1 个答案:

答案 0 :(得分:0)

在updateProfile之后强制用户刷新令牌: firebase.auth().currentUser.getToken(true)

之后将更新idToken。

相关问题