Как проверить владельца документа, прежде чем разрешить пользователю создавать? шаги:
document.owner
выдает ошибку при публикации.
//only allow create in moviesCommentID/{document} when document is owned by the user
match /moviesCommentID/{document=**} {
allow create: if request.auth != null && document.owner == request.auth.uid;
}
любая помощь приветствуется.
Переменная document
в ваших правилах представляет собой строку, значением которой является идентификатор документа.
В Firestore нет встроенной концепции владельца документа. Но если у вас есть поле owner
в данных документа, вы можете получить к нему доступ в своих правилах как resource.data.owner
. Также ознакомьтесь с документацией Firebase по проверке данных в правилах безопасности.
1- Создание
У вас должно быть поле в Firestore
документе, который вы изменяете, в котором хранится uid владельца
allow create: if request.auth != null && resource.data.ownerUid == request.auth.uid;
2- Обновление:
Используйте то же, что и для «создать» (владелец на самом деле является человеком, вошедшим в систему), но также добавьте что-то, чтобы сказать, что они не могут изменить владельца на другого пользователя.
allow update: if request.resource.data.ownerUid== resource.data.ownerUid;
Обратите внимание, что переменная request.resource
содержит будущее состояние документа.