Правила Firebase - пользователь может редактировать только свои данные - firebase
У меня есть проект Firebase, и я использую FirebaseAuth и базу данных Firebase.
У меня есть только одна коллекция с именем baby, с атрибутами name (String), userId (String) и голосования (Integer). userId содержит user.uid создателя.
Я хочу создать правило, чтобы только пользователь-создатель мог обновить или удалить документ. Любой может читать, а зарегистрированный пользователь может создавать.
Итак, у меня есть следующие правила:
rules_version = 2;
service cloud.firestore {
match /databases/{database}/documents {
match /baby/{userId} {
allow read;
allow create: if request.auth.uid != null;
allow update, delete: if request.auth.uid == userId;
}
}
}
С этим может читать каждый, зарегистрированный пользователь может создавать. Тем не менее, пользователь с uid = userId не может обновить. Кто-нибудь знает, где проблема?
Я проверил базу данных, и атрибут userID документов правильный (такой же, как и пользовательский uid).
Спасибо
- 284
- 1
- 11 май 2020 2020-05-11 10:17:47
- Mateu
1 ответ
Скорее всего, {userId}
не является идентификатором документа, поэтому request.auth.uid
не совпадает с {userId}
Обязательно укажите идентификатор документа при создании документа, и он должен работать как задумано.
- 11 май 2020 2020-05-11 10:17:48
- Flignats