Firebase实时数据库安全规则获取子名称

时间:2019-03-14 00:31:06

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

有没有办法让我得到孩子的名字?结构如下:

appointment-
           |- "here_is_some_date"-
                                 |-"some_user_id"-
                                                 |-details about it

我需要为谁可以阅读“约会”定义一条规则,但是我不确定如何获取日期名称,因此我可以进入UID。这是我尝试过的:

"appointments": {
        ".read": "data.child(data.val()).child(auth.uid).val() === auth.uid"
      }

1 个答案:

答案 0 :(得分:1)

在Firebase安全规则中读取子节点值的唯一方法是,如果您知道从当前节点(定义了规则的节点)到子节点的确切路径。

因此,如果您同时知道日期和UID(您确实知道),则可以通过以下方式读取子节点的值:

"appointments": {
  ".read": "data.child('here_is_some_date').child('some_user_id').val() === auth.uid"
}

但是在此路径中无法通配符。很难说出您到底想实现什么用例,但是如果“允许用户读取他们有约会的约会日期”,那么这将需要一个附加的,反向的数据结构: / p>

"user_appointment_dates": {
  "uid1": {
    "date1": true // or a more complete structure with the actual appointments
  }
}