如何访问数组中的父身份验证状态

时间:2019-02-03 19:09:10

标签: firebase firebase-realtime-database firebase-authentication firebase-security-rules

我不确定此标题是否合适,因为我是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"

我似乎无法访问此部分。似乎没有获得当前用户的身份验证状态。

更新

有关尝试使用预定义变量的信息,请参见附件的屏幕截图。我只是想获取身份验证状态,却收到一条错误消息,说它是未定义的?

enter image description here

1 个答案:

答案 0 :(得分:0)

正在尝试访问数据的当前用户的UID在auth.uid中可用。如果您试图确保仅当用户在accounts节点中有文档时才允许阅读引号,那么您正在寻找exists()

"website-quotes": {
  ".read": "root.child('accounts').child(auth.uid).exists()"
}