База данных Firebase содержит небезопасные правила, хотя правила необходимы - PullRequest
0 голосов
/ 09 апреля 2020

Об этом спрашивали довольно часто, но я все еще не знаю, что я могу сделать, чтобы заставить замолчать предупреждение, которое я получаю каждую неделю от Firebase ...

Ваша база данных Cloud-Firestore небезопасна rules

Как вы можете догадаться, мои правила все могут читать и писать .

Моя проблема в том, что мне это действительно нужно. В процессе регистрации мне нужно получить доступ ко всем электронным письмам и именам пользователей, чтобы проверить, доступен ли выбранный в данный момент или нет. И после того, как пользователь зарегистрировался, он может искать других пользователей и создавать / удалять / изменять свои собственные файлы.

Я не совсем понимаю, как мне избавиться от проблемы безопасности. Где угроза?

Ответы [ 2 ]

1 голос
/ 09 апреля 2020

Как я уже говорил в комментариях, если ваши пользователи могут создавать / удалять / обновлять только свои собственные файлы, тогда ваши правила не будут считываться / записываться как истинные. Как я понимаю, вам нужно, чтобы все пользователи могли читать, но вы хотите, чтобы они писали только в свои документы. Для этого нужно указать идентификатор документа так же, как идентификатор пользователя, а затем использовать приведенные ниже правила, чтобы проверить, является ли он действительным.

    match /users/{userId} {
        allow write: if request.auth.uid == userId;
        allow read: true;
    }
0 голосов
/ 10 апреля 2020

Итак, наконец-то все правильно поняли. С этим решением каждый может прочитать , а пользователь может только написать свои собственные вещи.

Вот мой код:

    service cloud.firestore {
  match /databases/{database}/documents {
      match /users/{userId} {
        allow write: if request.auth.uid == userId;
        allow read;
      match /{allSubcollections=**} {
        allow write: if request.auth.uid == userId;
        allow read;
      }
    }
  }
}
...