我试图摆脱将新条目发布到 angularfire 数组时出现的错误。该数组保存报告,该数组应该可以写入,但不能读取。我的规则如下:
"reports":{
".write":"(auth != null)",
"$report_id":{
//".write":"(auth != null)",// << commented out part
".validate":"!data.exists() && newData.exists() && newData.hasChildren(['reason', 'reportedUser', 'reportingUser', 'time'])",
"reason":{
".validate":"newData.isString() && newData.val().length < 100"
},
"reportedUser":{
".validate":"newData.isString() && newData.val().length < 30"
},
"reportingUser":{
".validate":"auth.uid === newData.val()"
},
"time":{
".validate":"newData.val() <= now"
},
"$other":{
".validate":false
}
}
}
我正在从一个函数中调用对该数组的写入,其内容如下:
var reportsArray = $firebaseArray(new Firebase(FBaseURL + "/reports/"));
reportsArray.$add(reportData)
.then(function(ref) {
console.log('user reported');
})
.catch(function(error) {
console.log("Error:", error);
});
无论我在规则中注释掉哪个写入规则(也取消注释另一个),写入是成功的,但是变量的创建会reportsArray
出现如下错误Error: permission_denied: Client doesn't have permission to access the desired data.
在这里最好做什么,忽略错误还是我做错了什么?