具有动态路径的Firebase子安全规则

时间:2019-03-10 23:23:21

标签: json firebase firebase-realtime-database

假设我有一个像这样的firebase json结构:

    "lgbxwerta":  {
        "xlakshjjsjjh" {
            "message_sender":"+23481772233",
            "message":"Hello"
        },

        "lkhshyujshhsjj" {
            "message_sender":"+234813237263",
            "message":"Hi"
        }
    }

现在,这是由两个不同的用户(通过其电话号码进行验证)发送到会议室的两条消息,并且该会议室的ID与该会议室中参与者之一的用户ID相同。 如何设置规则以允许用户仅在ID等于其自己的用户ID(用户ID是唯一且动态)的房间中读写。

也就是说,如果房间ID ==“ lgbxwerta”,则用户ID与房间ID相同的任何用户都可以对该房间进行读取或写入。有任何想法吗?相信我,当我阅读本文档时,我只是想不通-https://firebase.google.com/docs/database/security/securing-data

1 个答案:

答案 0 :(得分:1)

您应该为此使用通配符。就像变量一样,表示在运行时将有一个动态数据。

  "$room_id":
      {
         //if user logged in allow read and write to him only if his uid is same with the $room_id
         ".read": "auth != null && $room_id === auth.uid",
         ".write": "auth != null && $room_id === auth.uid"
      }