Правила Firebase - пользователь может редактировать только свои данные - PullRequest
0 голосов
/ 17 октября 2019

У меня есть проект 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).

Спасибо

1 Ответ

0 голосов
/ 17 октября 2019

Скорее всего, {userId} не является идентификатором документа, поэтому request.auth.uid не совпадает с {userId}

Убедитесь, что при создании документа указан идентификатор документа, и он долженработать как задумано.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...