Как я могу дать разрешение на запись указанному пользователю в Firebase? - PullRequest
0 голосов
/ 09 сентября 2018

У меня есть мобильное приложение, которое считывает данные с сервера firebase без входа в систему / аутентификации через firebase (сообщения и новости), и я хочу создать веб-страницу администратора, где я могу войти в систему и добавлять или изменять новости, поэтому мне нужно разрешение на запись там. Мои правила в настоящее время:

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

Могу ли я написать что-то вроде "user.emailAddress == 'mail@example.com'"?

Ответы [ 2 ]

0 голосов
/ 09 сентября 2018

Возможно, вы захотите начать с чтения документации о защите пользовательских данных . Здесь есть что знать.

Одной из возможностей является использование uid известного пользователя для ограничения доступа. Переменная auth.uid содержит идентификатор пользователя.

".write": "auth.uid == 'the-known-uid'"

Также вы можете использовать auth.token для доступа к некоторым другим сведениям о пользователе, включая адрес электронной почты (который может отсутствовать):

".write": "auth.token.email == 'the@email.address'"

Вы также можете использовать пользовательские токены аутентификации, которые также описаны в документации .

0 голосов
/ 09 сентября 2018

Вы можете создать таблицу пользователей в базе данных, как

{
  "users":{
     "your UID":{
        "isAdmin": true
      }
   }
}

Затем отредактируйте правила:

{
  "rules": {
    ".read": true,
    ".write": "auth.uid != null && root.child("users").child(auth.uid).isAdmin === true"
  }
}
...