Как разрешить доступ на чтение и запись только авторизованным пользователям в Firebase?

#android #firebase #firebase-realtime-database #firebase-security

#Android #firebase #firebase-realtime-database #firebase-безопасность

Вопрос:

Я новичок в Firebase и Android. Здесь, в Android, у меня есть одна кнопка, sign inкоторая регистрирует пользователей auth в Firebase, и я создаю дочерний объект в базе данных, и я хочу разрешить доступ только авторизованным зарегистрированным пользователям.

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

Правила Firebase теперь:

 {
  "rules": {

        ".read": true,
        ".write": true

  }
}
  

авторизованные пользователи регистрируются:

 Email              Providers     Created       Signed In     User UID
xxx@gmail.com                    Oct 4, 2016   Oct 4, 2016   PZJkEQnQZNZ
  

и база данных:

 chat-aa255
  - groupchat
      - KTOjXlA3Zwy38er
            - "msg":"hi"
            - "name":"one"
  

Пожалуйста, помогите мне, как решить эту проблему. Заранее спасибо.

Ответ №1:

Это потому, что вы не авторизованы в базе данных, проверьте вкладку «Правила» в базе данных реального времени

Если это

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

Это означает, что только авторизованный пользователь может записывать и считывать данные.

Изменение на

  {
  "rules": {
    ".read": true,
    ".write":true
    }
 }
  

Позволяет любому пользователю записывать базу данных

При запуске в производство обязательно используйте первый

Комментарии:

1. правила ok изменены …. но, пожалуйста, скажите мне, как отобразить «groupchat» в базе данных для пользователя auth «xxx@gmail.com »

2. @BaskarP вы нашли решение?

Ответ №2:

Попробуйте это, может быть, это сработает:

 {
  "rules": {
     ".read": "auth.email == 'xxx@gmail.com'",
     ".write":"auth != null"
   }
}
  

Комментарии:

1. Пожалуйста, рассмотрите возможность добавления проверенного / подтвержденного ответа.