Как разрешить существующим пользователям редактировать только свои данные? (Правила безопасности Firebase) - PullRequest
0 голосов
/ 23 апреля 2019

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

Я не могу найти то, что я ищу в документах Firebase.В основном я вижу аутентификацию по имени пользователя и паролю, дающую полный доступ на чтение и запись, что я не пытаюсь сделать.

{
  "rules": {
    ".read": (if user name matches a record),
    ".write": (if user name matches a record, only can edit)
  }
}

Я не уверен, как аутентифицировать моих пользователей, когда они дают им доступ на «запись», чтобы ограничитьэто только возможность редактировать данные.Я не хочу, чтобы какой-либо злонамеренный пользователь удалил мою базу данных.

1 Ответ

1 голос
/ 23 апреля 2019

Просто сопоставьте имя пользователя из пути и установите поле записи в соответствии с именем:

match /users/{username}{
    allow read: if request.auth.username != null
    allow write: if request.auth.username == username
}

Вы настроили приложение для работы без входа в систему и в качестве значения поля username объекта auth принимаете имя пользователя auth = { username: "" }. Firebase будет соответствовать имени пользователя, указанному по пути /users/{username}, в качестве запрошенного имени пользователя и соответственно разрешить доступ для чтения / записи.

...