Правила Firebase - пользователь может редактировать только свои данные - firebase


0

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

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

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

  • 11 май 2020 2020-05-11 10:17:48