【问题标题】:Firebase read permission denied when using auth security rules使用身份验证安全规则时,Firebase 读取权限被拒绝
【发布时间】:2016-12-18 20:36:20
【问题描述】:

数据结构:

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 ..

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

【问题讨论】:

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


    【解决方案1】:

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

    idToken 之后会更新。

    【讨论】:

    • 感谢您的回复!我最终使用了不同的结构来做到这一点,但我相信你的解决方案也会同样有效!
    猜你喜欢
    • 2016-11-27
    • 1970-01-01
    • 2016-02-09
    • 1970-01-01
    • 1970-01-01
    • 2016-11-07
    • 1970-01-01
    相关资源
    最近更新 更多