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

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

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

最佳答案

在 updateProfile 后强制刷新用户的 token : firebase.auth().currentUser.getToken(true)

idToken 将在之后更新。

关于javascript - 使用身份验证安全规则时 Firebase 读取权限被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41212619/

相关文章:

javascript - JSON.parse 错误地解析/转换大数字

javascript - 带 php 密码保护上传的图片库 : some issues

firebase - 指定将在 Firebase 中接收电子邮件通知的成员?

firebase - Flutter - 尝试构建 future 上下文以检查用户是否已登录,但我的构建方法有错误

javascript - 如何检索函数中变量的内容?

javascript - 如何在React中查询firebase数据库?

javascript - 使用 document.attachEvent 时检查事件目标

javascript - 使用discord.js 响应嵌入

javascript - 无法解析来自 React Firebase 对象的数据

javascript - 如何从 React/Firebase 中的 Promise 中获取数据?