С помощью Cloud Firestore Security Rules вы можете сосредоточиться на создании отличного пользовательского интерфейса, не управляя инфраструктурой и не создавая код аутентификации и авторизации на стороне сервера.
Правила безопасности обеспечивают контроль доступа и проверку данных в простом, но выразительном формате. Чтобы создать системы доступа на основе пользователей и ролей, которые обеспечивают безопасность данных пользователей, используйте Firebase Authentication с Cloud Firestore Security Rules.
Запрос к ИИ для помощи от ИИ в
Чтобы получить помощь от ИИ, скопируйте запрос ниже и вставьте его в Antigravity, Gemini в Android Studio, 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.
Дальнейшие действия
- Подробнее о том, как структурировать правила безопасности…
- Напишите условия для специальных правил безопасности.
- Ознакомьтесь со справочником по правилам безопасности.