Правило безопасности Firebase не предотвращает removeValue () - PullRequest
0 голосов
/ 05 ноября 2018

Я установил следующее правило безопасности, но .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 голосов
/ 05 ноября 2018

Ваш код удаляет одно значение из /myDatabase/customerIDs/$customerId/$scheduleId. Ваши правила отклоняют только записи, которые удаляют всю базу данных, но не записи, которые удаляют один идентификатор расписания. Если вы хотите запретить их, добавьте правило на правильный путь.

Что-то вроде:

{
  "rules": {
    "myDatabase": {
      "customerIDs": {
        "$customerId": {
          "$scheduleId": {
            ".validate": "newData.exists()"
          }
        }
      }
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...