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,在写了那封信之后,我明白了我错在哪里。