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