В моем Firebase -> База данных -> Редактор правил у меня есть правило соответствия для операции write
для курса, который проверяет, является ли свойство status
одним из следующих значений:
- Undefined,это означает, что свойство просто отсутствует в реквизите модели, или
- Set, со значением 'draft' или 'complete'
Чтобы зафиксировать это, я написал следующее:
match /courses/{courseId} {
allow write: if (resource.data.status == 'undefined' ||
resource.data.status != 'completed');
}
То есть, write
разрешено, если у курса нет свойства status
или оно не равно «завершено».Нет проблем со второй частью условия. Проблема в том, что первая часть всегда вызывает типичную ERROR FirebaseError: отсутствуют или недостаточные разрешения .
Я пробовал каждый из следующих вариантовдля первой части, но безуспешно:
resource.data.status == null
resource.data.status == undefined
resource.data.status == 'undefined'
typeof(resource.data.status) == undefined
typeof(resource.data.status) == 'undefined'
И, ===
просто не синтаксически допустим в редакторе.Любая идея, как проверить отсутствующие свойства и получить правильное значение true / false?