Начало работы с правилами безопасности Firebase

Правила безопасности Firebase обеспечивают надежную, полностью настраиваемую защиту ваших данных в Cloud Firestore , Realtime Database и Cloud Storage . Вы можете легко начать работу с Rules , следуя инструкциям в этом руководстве, защищая свои данные и приложение от злоумышленников.

Понимать язык правил безопасности Firebase

Прежде чем начать писать правила, стоит уделить время изучению конкретного языка правил безопасности Firebase для продуктов Firebase, которые вы используете. Realtime Database использует синтаксис, подобный JavaScript, и структуру JSON для своих Rules .

Начните с изучения основного синтаксиса языка правил безопасности Firebase .

Настроить Authentication

Если вы еще этого не сделали, добавьте Firebase Authentication в свое приложение . Firebase Authentication поддерживает множество распространенных методов аутентификации и интегрируется с Firebase Security Rules, предоставляя комплексные возможности проверки.

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

Узнайте больше о правилах безопасности Firebase и Firebase Authentication .

Определите структуры данных и правил

Определение данных для безопасности

То, как вы структурируете свои данные, может повлиять на то, как вы структурируете и реализуете свои правила. Когда вы определяете свои структуры данных, учитывайте последствия, которые они могут иметь для вашей структуры Rules .

Например, в Realtime Database вы можете захотеть включить поле, которое обозначает определенную роль для каждого пользователя. Затем ваши правила могут считывать это поле и использовать его для предоставления доступа на основе ролей.

При определении архитектур данных и правил помните о том, как правила каскадируются или не каскадируются в зависимости от вашего продукта. В Realtime Database правила работают сверху вниз, при этом более мелкие правила переопределяют более глубокие правила. Если правило предоставляет разрешения на чтение или запись по определенному пути, то оно также предоставляет доступ ко всем дочерним узлам под ним. Напротив, в Cloud Firestore и Cloud Storage правила применяются только на определенных уровнях иерархии данных, и вы пишете явные правила для управления доступом к различным уровням.

Доступ к вашим правилам

Чтобы просмотреть существующие Rules , используйте Firebase CLI или консоль Firebase . Убедитесь, что вы редактируете правила, используя один и тот же метод, последовательно, чтобы избежать ошибочной перезаписи обновлений. Если вы не уверены, отражают ли ваши локально определенные правила самые последние обновления, консоль Firebase всегда показывает самую последнюю развернутую версию ваших правил безопасности Firebase.

Чтобы получить доступ к правилам из консоли Firebase , выберите свой проект, затем на левой навигационной панели нажмите Realtime Database . Нажмите Rules , как только вы окажетесь в нужной базе данных или контейнере хранения.

Чтобы получить доступ к правилам из Firebase CLI, перейдите к файлу правил, указанному в файле firebase.json .

Напишите основные правила

Разрабатывая приложение и изучая Rules , попробуйте реализовать Rules для решения нескольких основных задач , включая следующие:

  • Только для владельца контента: ограничение доступа пользователя к контенту.
  • Смешанный доступ: ограничить доступ пользователя к записи, но разрешить публичный доступ к чтению.
  • Доступ на основе атрибутов: ограничение доступа для группы или типа пользователей.

Проверьте свои правила

Если вы настраиваете правила безопасности Firebase в консоли Firebase , вы можете использовать Firebase Rules Playground для быстрой проверки поведения. Однако мы рекомендуем провести более тщательное тестирование с помощью Local Emulator Suite прежде чем развертывать изменения в производстве.

Развертывание правил

Используйте консоль Firebase или Firebase CLI для развертывания правил в производстве. Следуйте инструкциям, изложенным в разделе Управление и развертывание правил безопасности Firebase .