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

时间:2017-04-27 08:38:16

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

我在编写规则时遇到了麻烦,似乎无法以正确的方式接近它,我会很高兴看到它出现在哪里,看看我哪里出错了。

这是规则摘录

"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级别上设置为true,那么一切正常,所以我知道数据提交并使用正确的信息这样做,我只是看不出它出错了。

感谢您的时间。

供参考:

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

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

0 个答案:

没有答案