我在以下设置了安全规则,但是.removeValue()
仍然能够删除记录。我在做什么错了?
{
"rules": {
".read": "auth != null",
".write": "auth != null && newData.exists()"
}
}
这是尝试迅速删除条目的代码(根据快速规则),并且根据安全规则应该会失败,但是会成功:
let ref = FIRDatabase.database().reference(withPath: "myDatabase/customerIDs")
ref.child("\(customerID)").child(scheduleIDs[indexPath.row]).removeValue()
答案 0 :(得分:1)
您的代码从/myDatabase/customerIDs/$customerId/$scheduleId
中删除了一个值。您的规则仅拒绝删除整个数据库的写入,而不拒绝删除单个日程表ID的写入。如果您想禁止这些操作,请在正确的路径上添加一条规则。
类似的东西:
{
"rules": {
"myDatabase": {
"customerIDs": {
"$customerId": {
"$scheduleId": {
".validate": "newData.exists()"
}
}
}
}
}
}