С помощью Cloud Firestore Security Rules вы можете сосредоточиться на создании отличного пользовательского интерфейса, не управляя инфраструктурой и не создавая код аутентификации и авторизации на стороне сервера.
Правила безопасности обеспечивают контроль доступа и проверку данных в простом, но выразительном формате. Чтобы создать системы доступа на основе пользователей и ролей, которые обеспечат безопасность данных пользователей, используйте Firebase Authentication с Cloud Firestore Security Rules.
Запрос к ИИ для получения помощи от ИИ
Чтобы получить помощь от ИИ, скопируйте запрос ниже и вставьте его в свой ИИ-агент для программирования (например, Gemini в Android Studio, Antigravity, Claude Code, Codex или Cursor). Вы можете настроить запрос и повторить его с агентом. Подробные инструкции по установке вы найдете в статье Навыки агента Firebase.
Help me use Firebase in my app.
1. Make sure that **Firebase agent skills** are installed and updated. For Claude Code, Codex, or Cursor agents, help me install the Firebase plugin. For other agents, run `npx skills add firebase/agent-skills`. Always try to use **Firebase agent skills** for Firebase-related tasks.
2. Help me write, validate, and deploy Firebase Security Rules to protect my app's Firestore data.
Правила безопасности версии 2
В мае 2019 года была выпущена вторая версия правил безопасности Cloud Firestore. Во второй версии правил изменено поведение рекурсивных подстановочных знаков {name=**}. Если вы планируете использовать запросы к группе коллекций, вам потребуется версия 2. Чтобы включить версию 2, добавьте rules_version = '2'; в первую строку правил безопасности:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
Правила написания
Вы будете писать и настраивать Cloud Firestore Security Rules, адаптированные к модели данных, которую вы создаете для базы данных по умолчанию и каждой дополнительной базы данных в вашем проекте.
Все Cloud Firestore Security Rules состоят из инструкций match, которые идентифицируют документы в вашей базе данных, и выражений allow, которые управляют доступом к этим документам:
service cloud.firestore {
match /databases/{database}/documents {
match /<some_path>/ {
allow read, write: if <some_condition>;
}
}
}
Каждый запрос к базе данных из клиентской библиотеки Cloud Firestore для мобильных устройств или веб-приложений оценивается на соответствие правилам безопасности перед чтением или записью данных. Если правила запрещают доступ к любому из указанных путей к документам, весь запрос завершается ошибкой.
Ниже приведены примеры базовых наборов правил. Хотя эти правила допустимы, они не рекомендуются для рабочих приложений:
Требуется аутентификация
// Allow read/write access on all documents to any user signed in to the application
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if request.auth != null;
}
}
}
Отклонить все
// Deny read/write access to all users under any conditions
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if false;
}
}
}
Разрешить все
// Allow read/write access to all users under any conditions
// Warning: **NEVER** use this rule set in production; it allows
// anyone to overwrite your entire database.
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if true;
}
}
}
Путь {document=**}, используемый в примерах выше, соответствует любому документу во всей базе данных. Перейдите к руководству по структурированию правил безопасности, чтобы узнать, как сопоставлять определенные пути к данным и работать с иерархическими данными.
Правила тестирования
В Cloud Firestore есть симулятор правил, с помощью которого можно протестировать набор правил. Симулятор доступен как в консоли Google Cloud, так и в консоли Firebase.
Симулятор правил позволяет имитировать чтение, запись и удаление с аутентификацией и без нее. При моделировании аутентифицированного запроса вы можете создавать и просматривать токены аутентификации от различных поставщиков. Имитированные запросы выполняются в отношении набора правил в редакторе, а не развернутого набора правил.
Как протестировать правила в консоли Google Cloud
Симулятор правил в консоли Google Cloud доступен для Firestore в нативном режиме в версиях Standard и Enterprise.
Требуемые права доступа
Чтобы протестировать правила безопасности в консоли Google Cloud, вам потребуется следующее разрешение IAM:
firebaserules.rulesets.test
Чтобы симулировать запрос к базе данных в консоли Google Cloud:
- В консоли Google Cloud перейдите на страницу Databases (Базы данных).
- Нажмите на идентификатор базы данных, которую вы хотите протестировать.
- В меню навигации выберите Безопасность.
- Перейдите на вкладку Симулятор.
- В раскрывающемся списке Simulation type (Тип симуляции) выберите тип операции: get (получить), create (создать), update (обновить) или delete (удалить).
- В поле Местоположение введите путь к документу, который вы хотите протестировать (например,
users/user_123). - Для запросов create и update нажмите Build document (Создать документ), чтобы настроить полезную нагрузку макета документа.
- Чтобы смоделировать аутентифицированный запрос, включите параметр Authentication (Аутентификация), выберите поставщика аутентификации (например, google.com или Anonymous (Анонимный)) и настройте поля полезной нагрузки токена.
- Нажмите Выполнить.
На панели оценки отображается, был ли запрос разрешен или отклонен, подробные элементы отчета для каждого оцениваемого условия и выделенные строки в редакторе кода.
Как протестировать правила в консоли Firebase
Чтобы протестировать правила в консоли Firebase, перейдите в раздел Databases & Storage (Базы данных и хранилище) > Firestore > вкладка Rules (Правила). Нажмите Песочница правил, чтобы открыть настройки симулятора, выберите нужные параметры и нажмите Запустить.
Развертывание правил
Прежде чем вы сможете использовать Cloud Firestore в мобильном приложении, вам нужно развернуть правила безопасности. Правила можно развернуть в консоли Firebase, консоли Google Cloud, с помощью интерфейса командной строки Firebase или REST API управления Cloud Firestore.
Изменения в Cloud Firestore Security Rules могут вступить в силу для новых запросов и слушателей в течение минуты. Однако для полного распространения изменений и воздействия на всех активных слушателей может потребоваться до 10 минут.
Как использовать консоль Firebase
Чтобы настроить и развернуть первый набор правил для базы данных по умолчанию в проекте, в консоли Firebase перейдите в раздел Databases & Storage (Базы данных и хранилище) > Firestore > вкладка Rules (Правила).
Если вы создадите несколько баз данных для проекта, то сможете развернуть Cloud Firestore Security Rules для каждой из них. В консоли Firebase используйте селектор баз данных, чтобы переключаться между базой данных по умолчанию и дополнительными базами данных.
Задайте правила в онлайн-редакторе и нажмите Опубликовать.
Как использовать консоль Google Cloud
Вы можете управлять Cloud Firestore Security Rules и развертывать его непосредственно в консоли Google Cloud. Редактор правил доступен для Firestore в нативном режиме в версиях Standard и Enterprise.
Требуемые права доступа
Чтобы управлять правилами безопасности и развертывать их в консоли Google Cloud, вам нужны следующие разрешения IAM:
firebaserules.releases.createfirebaserules.releases.deletefirebaserules.releases.updatefirebaserules.rulesets.createfirebaserules.rulesets.deletefirebaserules.rulesets.listfirebaserules.rulesets.test(требуется для использования симулятора правил)
Чтобы развернуть правила в консоли Google Cloud:
- В консоли Google Cloud перейдите на страницу Databases (Базы данных).
- Нажмите на идентификатор базы данных, которой хотите управлять.
- В меню навигации выберите Безопасность.
- Перейдите на вкладку Firestore Rules (Правила Firestore).
- В редакторе правил посмотрите свои правила. Чтобы изменить набор правил, нажмите Новый набор правил или Клонировать набор правил, а затем измените правила.
- Нажмите Опубликовать, чтобы применить изменения.
Вы также можете посмотреть предыдущие наборы правил на временной шкале и клонировать или восстановить их.
Как использовать интерфейс командной строки Firebase
Вы также можете развернуть правила с помощью интерфейса командной строки Firebase. Использование CLI позволяет вам сохранять правила под управлением версий вместе с кодом приложения и развертывать правила как часть существующего процесса развертывания.
// Set up Firestore in your project directory, creates a .rules file
firebase init firestore
// Edit the generated .rules file to your desired security rules
// ...
// Deploy rules for all configured databases
firebase deploy --only firestore
Повысьте безопасность для Cloud Storage
Ваши приложения смогут использовать надежные функции баз данных Cloud Firestore, а также функции хранения файлов и управления ими Cloud Storage. При совместном использовании эти продукты также обеспечивают усиленную безопасность приложений, поскольку Cloud Firestore может фиксировать требования к авторизации, которые могут использоваться правилами безопасности Firebase для обоих продуктов. Подробную информацию вы найдете в руководстве по Cloud Storage.
Дальнейшие действия
- Подробнее о том, как структурировать правила безопасности…
- Напишите специальные условия правил безопасности.
- Ознакомьтесь со справочником по правилам безопасности.