#android #firebase #firebase-realtime-database #firebase-security
#Android #firebase #firebase-realtime-database #firebase-безопасность
Вопрос:
В моем приложении встроена функция чата, использующая Firebase Realtime DB для хранения содержимого чата. Недавно я получил электронное письмо с содержимым:
[Firebase] Ваша база данных реального времени ***** имеет небезопасные правила
Мое приложение использует аутентификацию на стороне сервера без интеграции Firebase Authen. Итак, если я установлю для правил чтения / записи значение false
, обычный пользователь не сможет общаться в чате. Как решить эту проблему? Спасибо!
{
"rules": {
".read": false,
".write": false
}
}
Ответ №1:
Делать чтение и запись общедоступными — не очень хорошая идея. Для серверной части вам подойдет admin sdk. Но в конце клиента вы должны использовать какую-то аутентификацию. Вы можете использовать аутентификацию, доступную с учетными данными, анонимную аутентификацию или пользовательскую аутентификацию токеном. Правила будут похожи :-
{
"rules": {
".read": "auth !== null amp;amp; auth.uid !== null",
".write": "auth !== null amp;amp; auth.uid !== null"
}
}
Ответ №2:
Если вы выполняете вход пользователя перед доступом к базе данных, измените правила на..
".read" : "auth != null",
".write" : "auth != null"
Это позволит пользователям, прошедшим проверку подлинности, получить доступ к базе данных.
Комментарии:
1. Как следует из описания моего вопроса, мое приложение использует аутентификацию только на стороне сервера, поэтому в моем приложении больше нет аутентификации firebase. И я не могу использовать эту конфигурацию правила