Javascript Firebase写入规则被拒绝,无法查看问题

Javascript Firebase写入规则被拒绝,无法查看问题,javascript,firebase,firebase-realtime-database,firebase-security,Javascript,Firebase,Firebase Realtime Database,Firebase Security,我在写规则方面遇到了麻烦,似乎无法以正确的方式处理它,我希望能有一双新的眼睛来观察我的错误 这是规则片段 "customMaps": { "$map":{ "admin": { ".read": true, ".write": "newData.child('owner').val() === auth.uid" }, "lines": { ".read": true, ".write": "data.pa

我在写规则方面遇到了麻烦,似乎无法以正确的方式处理它,我希望能有一双新的眼睛来观察我的错误

这是规则片段

"customMaps": {
  "$map":{
    "admin": {
      ".read": true,
      ".write": "newData.child('owner').val() === auth.uid"     
      },
    "lines": {
      ".read": true,
      ".write": "data.parent().child('admin/owner').val() === auth.uid || data.parent().child('admin/whitelist').child(auth.uid).exists()"      
    },
    "markers": {
      ".read": true,
      ".write": "data.parent().child('admin/owner').val() === auth.uid || data.parent().child('admin/whitelist').child(auth.uid).exists()"      
      },
     "labels": {
      ".read": true,
      ".write": "data.parent().child('admin/owner').val() === auth.uid || data.parent().child('admin/whitelist').child(auth.uid).exists()"      
      },           
      "users": {
        ".read":true,
        ".write":true        
      }
    }
}
这是数据提交

database.ref("customMaps").push({
  "admin":{
    "map":mapname,
    "title":maptitle,
    "owner":uid
  }
}).then((snap) => {
  key = snap.key    
  database.ref("users/"+uid+"/maps/"+key).set({
    "map":mapname,
    "title":maptitle
  });
}); 
当我创建一个新地图(上面的函数)时,我的权限被拒绝,如果我在customMap级别将write设置为true,那么一切都会正常工作,因此我知道数据提交并使用正确的信息进行提交,我只是看不到哪里出了问题

谢谢你抽出时间

供参考:

"$map":{
    ".read":true,
    ".write" : "newData.child('admin/owner').val() === auth.uid",
    "admin": {

将上述写入规则添加到$map中,因为我实际上没有授予推送数据的权限,只有管理员数据。

您尝试写入
customMaps/
,而不是
customMaps/$map/admin
。这是一个推送,不是$map是什么吗?对,但您尝试直接写入
$map
,在它下面添加
admin
,但是你没有写入
$map
的权限。所以,我在map中添加了一个写入规则,类似于“.write”:“newData.child('admin/owner').val()==auth.uid”,但这似乎不起作用,所以我又错过了一些东西。啊,谢谢@PieterLaebens,在写了那封信之后,我明白了我错在哪里。