Я новичок в Firestore и пытаюсь настроить простые правила безопасности, чтобы только тот, кто вошел в систему, мог создать новую запись в базе данных, а пользователи могли только читать и записывать свои собственные записи.
service cloud.firestore {
match /databases/{database}/documents {
match /Users/{userID} {
// Can only create a new entry if signed in with a uid.
allow create: if request.auth.uid != null;
// Can only update an entry if signed in with uid and changing own information (saved under uid)
allow update: if request.auth.uid != null &&
userID == request.auth.uid;
// Can only read (get/list) an entry if signed in with uid and reading own information (saved under uid)
allow read: if request.auth.uid != null &&
resource.data.userID == request.auth.uid;
}
}
}
Создание новой записи отлично работает, но мне интересно, достаточно ли это безопасно.
Для обновления и чтения я также хочу убедиться, что пользователь обновляет / читает свою собственную запись. Имя документа - это идентификатор пользователя (другими словами, UserID) из Firebase, поэтому простая проверка того, что request.auth.uid - то же самое, должна сработать, но что-то не так, как я пишу. Звонок блокируется, и когда я запускаю его в симуляторе, я получаю сообщение об ошибке: отсутствуют или недостаточно разрешений. Я не могу понять после просмотра документации и этого обучающего видео .