#firebase #firebase-realtime-database #firebase-authentication #firebase-security
#firebase #firebase-realtime-database #firebase-аутентификация #firebase-безопасность
Вопрос:
Я пишу приложение RSVP, в котором пользователь попадает на сайт и просто вводит свое имя. Я хочу, чтобы, если их имя соответствует записи в базе данных, им предоставлялся доступ к редактированию их поля посещения. Я мало что знаю о безопасности в этом случае.
Я не могу найти то, что я ищу в документах firebase. В основном я вижу аутентификацию по имени пользователя и паролю, предоставляющую полный доступ на чтение и запись, чего я не пытаюсь делать.
{
"rules": {
".read": (if user name matches a record),
".write": (if user name matches a record, only can edit)
}
}
Я не уверен, как аутентифицировать своих пользователей, предоставляя им доступ «на запись», чтобы ограничить это только возможностью редактировать данные. Я не хочу, чтобы какой-либо злоумышленник удалял мою базу данных.
Ответ №1:
Просто сопоставьте имя пользователя с path и установите поле записи в соответствии с именем:
match /users/{username}{
allow read: if request.auth.username != null
allow write: if request.auth.username == username
}
Вы настраиваете свое приложение для работы без какого-либо входа и принимаете имя пользователя, введенное в качестве значения поля username объекта auth auth = { username: "" }
. Firebase сопоставит имя пользователя, указанное по пути /users/{username}
, с запрошенным именем пользователя и соответственно разрешит доступ на чтение / запись.