Firebase 拒绝权限

Permission denied with Firebase

我希望我的应用程序的用户能够查看通过实时数据库访问的其他用户的个人资料。我通过

引用数据库

ref.once('users/'+uid, snapshot => snapshot.child('users/'+uid).val())

我的规则:

{
  "rules": {
    "users": {
      ".read": true,
      "$uid": {
        ".write": "$uid === auth.uid"
      },
   },
}

我不明白为什么我无法访问 users/:uid,即使模拟器通过在 [=15= 上勾选 read 和 运行 模拟给出 success 消息].

如果我在 rules 下设置 ".read": true" 它确实允许我读取数据,但如果我想实现我不想成为的东西,这可能会在以后引诱我可供未经授权的用户使用。

编辑(解决方案):

问题在于引用 firebase。我没有使用 firebase.database.ref('users'),而是通过 firebase.database.ref() 引用了 root 本身。

该引用导致应用默认 read/write 规则。

您可以给 ".read": "auth != null" 以允许所有授权用户读取 users 对象下的数据并防止未经授权的用户读取它。