Правила Firebase для одного аутентифицированного пользователя - PullRequest
0 голосов
/ 30 апреля 2018

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

"rules": {
  ".read": true,
  ".write": "auth != null", }

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

Я пробовал что-то вроде:

"rules": {
  ".read": true,
  ".write": "auth != Example123", }

но Firebase это не понравилось. Можно ли делать то, что я хочу, используя правила Firebase, или мне нужно найти другой подход? Заранее спасибо.

1 Ответ

0 голосов
/ 01 мая 2018

Вы можете сделать следующее:

Создайте узел users в вашей базе данных, в котором вы будете хранить конкретного пользователя (ей) с его (их) UID пользователя, например:

- users
    - Lt7kif73eL58dFCYcmeEfOzUl2n1  <- User UID
      - restrictedRights: true
      - name: xxxxxx 

и напишите ваше правило следующим образом

".write": "auth != null && !root.child('users').hasChild(auth.uid)"

Конечно, вы должны добавить это правило в вашу базу данных:

"users": {
        ".read": ....,
        ".write": false   
}
...