Firebase安全规则不会阻止removeValue()

时间:2018-11-05 16:44:03

标签: swift firebase firebase-realtime-database firebase-security-rules

我在以下设置了安全规则,但是.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()

1 个答案:

答案 0 :(得分:1)

您的代码从/myDatabase/customerIDs/$customerId/$scheduleId中删除了一个值。您的规则仅拒绝删除整个数据库的写入,而不拒绝删除单个日程表ID的写入。如果您想禁止这些操作,请在正确的路径上添加一条规则。

类似的东西:

{
  "rules": {
    "myDatabase": {
      "customerIDs": {
        "$customerId": {
          "$scheduleId": {
            ".validate": "newData.exists()"
          }
        }
      }
    }
  }
}