Firebase安全规则问题

Firebase安全规则问题,firebase,firebase-realtime-database,firebase-security,Firebase,Firebase Realtime Database,Firebase Security,我在制定firebase的安全规则时遇到了一些问题。我不断遭到拒绝 这是我理想的结构。以便更容易读取数据。如果某个模型不存在。用户将能够为该车创建一个部分,并将他的帖子放在那里。但是当另一个用户想要发布同一车型时。他只会在帖子列表中添加内容 { "rules":{ ".read":"auth != null", "Cars":{ "$anyCar":{ "$postName":{ ".writ

我在制定firebase的安全规则时遇到了一些问题。我不断遭到拒绝

这是我理想的结构。以便更容易读取数据。如果某个模型不存在。用户将能够为该车创建一个部分,并将他的帖子放在那里。但是当另一个用户想要发布同一车型时。他只会在帖子列表中添加内容

{
   "rules":{
      ".read":"auth != null",
      "Cars":{
         "$anyCar":{
            "$postName":{
               ".write":"auth != null",
               ".validate":"newData.hasChildren(['uid']) && newData.child('uid').isString() && newData.child('uid').val() == auth.uid"
            }
         }
      }
   }
}
这就是我为这个数据库实现规则的方式

{
   "Volvo":{
      "-KM_nqDpB78ZM0SE485F":{
         "color":"-10053121",
         "comments":0,
         "date":10,
         "id":1231,
         "uid":"45738372-3b72-4328-aa99-a00c05482973",
         "rating":0,
         "topic":"Volvo is a safe car",
         "user":"Brahim"
      }
   }
}
这是我在模拟器上尝试使用的
json

当我使用模拟器时,我已通过身份验证,并且我正在对位置
/Cars
进行尝试

根据您的安全规则,您可以写入帖子,但不能创建新帖子

您应该允许在
$anycar
节点中进行写访问,并且可能只允许该特定用户编辑帖子

   {
   "rules":{
      ".read":"auth != null",
      "Cars":{
        "$anyCar":{
          ".write":"auth != null",
          "$postName":{
           ".write": "auth.uid == newData.child('uid').val()"
           ".validate":"newData.hasChildren(['uid']) && newData.child('uid').isString()"
          }
        }
      }
    }
  }

根据你的安全规则,你可以写一篇文章,但不能新建一篇

您应该允许在
$anycar
节点中进行写访问,并且可能只允许该特定用户编辑帖子

   {
   "rules":{
      ".read":"auth != null",
      "Cars":{
        "$anyCar":{
          ".write":"auth != null",
          "$postName":{
           ".write": "auth.uid == newData.child('uid').val()"
           ".validate":"newData.hasChildren(['uid']) && newData.child('uid').isString()"
          }
        }
      }
    }
  }