Правила безопасности Firebase обеспечивают надежную, полностью настраиваемую защиту ваших данных в Cloud Firestore , Realtime Database и Cloud Storage . Вы можете легко начать работу с Rules следуя инструкциям в этом руководстве, обеспечивая безопасность своих данных и защищая приложение от злоумышленников.
Понимание языка правил безопасности Firebase
Прежде чем приступить к написанию правил, стоит уделить время изучению языка правил безопасности Firebase для используемых вами продуктов Firebase. Realtime Database использует для своих Rules синтаксис, подобный JavaScript, и структуру JSON.
Начните с изучения основного синтаксиса языка правил безопасности Firebase .
Настроить Authentication
Если вы ещё этого не сделали, добавьте Firebase Authentication в своё приложение . Firebase Authentication поддерживает множество распространённых методов аутентификации и интегрируется с правилами безопасности Firebase, обеспечивая комплексные возможности проверки.
Вы можете настроить дополнительную пользовательскую информацию аутентификации для своего приложения.
Узнайте больше о правилах безопасности 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 для развертывания правил в рабочей среде. Следуйте инструкциям в разделе Управление и развертывание правил безопасности Firebase .