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

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

Понимать язык Firebase Security Rules

Прежде чем приступить к написанию правил, стоит уделить время изучению конкретного языка Firebase Security Rules для используемых вами продуктов Firebase. Cloud Storage использует надмножество языка общих выражений (CEL), которое опирается на операторы match и allow , устанавливающие условие для доступа по определенному пути.

Начните с изучения основного синтаксиса языка Firebase Security Rules .

Настроить Authentication

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

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

Узнайте больше о Firebase Security Rules и Firebase Authentication .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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