Правила безопасности Firebase обеспечивают надежную, полностью настраиваемую защиту ваших данных в Cloud Firestore , Realtime Database и Cloud Storage . Вы можете легко начать работу с Rules следуя инструкциям в этом руководстве, защитив свои данные и приложение от злоумышленников.
Понимание языка правил безопасности Firebase
Прежде чем приступить к написанию правил, стоит потратить некоторое время на изучение конкретного языка правил безопасности Firebase для продуктов Firebase, которые вы используете. Realtime Database использует синтаксис, подобный JavaScript, и структуру JSON для своих Rules .
Начните с изучения основного синтаксиса языка правил безопасности Firebase .
Настройка Authentication
Если вы еще этого не сделали, добавьте Firebase Authentication в свое приложение . Firebase Authentication поддерживает множество распространенных методов аутентификации и интегрируется с правилами безопасности Firebase, обеспечивая комплексные возможности проверки.
Вы можете настроить дополнительную пользовательскую информацию аутентификации для своего приложения.
Узнайте больше о правилах безопасности Firebase и Firebase Authentication .
Определите структуры данных и правил
Определите данные для безопасности
То, как вы структурируете свои данные, может повлиять на то, как вы структурируете и реализуете свои правила. Определяя структуры данных, подумайте о том, какое влияние они могут оказать на структуру ваших Rules .
Например, в Realtime Database вы можете включить поле, обозначающее определенную роль для каждого пользователя. Затем ваши правила смогут прочитать это поле и использовать его для предоставления доступа на основе ролей.
Определяя архитектуру данных и правил, помните о том, как правила каскадируются или не каскадируются, в зависимости от вашего продукта. В Realtime Database правила работают сверху вниз, при этом более мелкие правила имеют приоритет над более глубокими правилами. Если правило предоставляет разрешения на чтение или запись по определенному пути, оно также предоставляет доступ ко всем дочерним узлам под ним. Напротив, в Cloud Firestore и Cloud Storage правила применяются только на определенных уровнях иерархии данных, и вы пишете явные правила для управления доступом к различным уровням.
Доступ к вашим правилам
Чтобы просмотреть существующие Rules , используйте интерфейс командной строки Firebase или консоль Firebase . Обязательно редактируйте свои правила, используя один и тот же метод, последовательно, чтобы избежать ошибочной перезаписи обновлений. Если вы не уверены, отражают ли ваши локально определенные правила самые последние обновления, консоль Firebase всегда показывает самую последнюю развернутую версию ваших правил безопасности Firebase.
Чтобы получить доступ к своим правилам из консоли Firebase , выберите свой проект, затем на левой навигационной панели нажмите «База данных реального времени» . Нажмите Rules , как только вы окажетесь в нужной базе данных или сегменте хранилища.
Чтобы получить доступ к своим правилам из интерфейса командной строки Firebase , перейдите к файлу правил, указанному в файле firebase.json .
Напишите основные правила
Разрабатывая приложение и понимая Rules , попробуйте внедрить Rules для решения нескольких основных случаев использования , включая следующие:
- Только для владельцев контента: Ограничьте доступ пользователя к контенту.
- Смешанный доступ: Ограничьте доступ для записи для пользователя, но разрешите общий доступ для чтения.
- Доступ на основе атрибутов: Ограничьте доступ группе или типу пользователя.
Проверьте свои правила
Если вы настраиваете правила безопасности Firebase в консоли Firebase , вы можете использовать игровую площадку правил Firebase для быстрой проверки поведения. Однако мы рекомендуем провести более тщательное тестирование с помощью Local Emulator Suite перед развертыванием изменений в рабочей среде.
Развертывание правил
Используйте консоль Firebase или интерфейс командной строки Firebase для развертывания правил в рабочей среде. Выполните действия, описанные в разделе «Управление и развертывание правил безопасности Firebase» .