我不确定这个标题是否合适,因为我是Firebase身份验证和规则的新手,但是,我已成功设置身份验证,现在我正在尝试保护特定路由,但似乎无法访问相关数据,这是我的实时数据库中的Firebase规则:
{
"rules": {
"accounts": {
"$uid": {
".read": "$uid === auth.uid",
".write": "$uid === auth.uid"
}
},
"demo": {
".read": "accounts.$uid === auth.uid",
".write": true
}
}
}
正如你所看到的,我正试图从“demo”中访问accounts / $ uid /,它似乎不起作用,我缺少什么/我需要更改什么?
非常感谢
UPDATE
有问题的代码不起作用:
".read": "accounts.$uid === auth.uid"
我似乎无法访问这部分。它似乎没有获得当前用户的身份验证状态。
UPDATE
有关使用预定义变量的尝试,请参阅附带的屏幕截图。我只是试图获得auth状态,我收到一个错误,说它未定义?
尝试访问数据的当前用户的UID在auth.uid
中可用。如果您试图确保只有当用户在accounts
节点中有文档时才允许读取引号,那么您正在寻找exists()
。
"website-quotes": {
".read": "root.child('accounts').child(auth.uid).exists()"
}