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
对象下的数据并防止未经授权的用户读取它。
我希望我的应用程序的用户能够查看通过实时数据库访问的其他用户的个人资料。我通过
引用数据库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
对象下的数据并防止未经授权的用户读取它。