С помощью правил безопасности Cloud Firestore вы можете сосредоточиться на создании удобного взаимодействия с пользователем без необходимости управлять инфраструктурой или писать код аутентификации и авторизации на стороне сервера.
Правила безопасности обеспечивают контроль доступа и проверку данных в простом, но выразительном формате. Для создания систем доступа на основе пользователей и ролей, обеспечивающих безопасность данных пользователей, необходимо использовать аутентификацию Firebase с правилами безопасности Cloud Firestore.
Правила безопасности версии 2
С мая 2019 года доступна версия 2 правил безопасности Cloud Firestore. Версия 2 правил изменяет поведение рекурсивных подстановочных знаков {name=**}
. Вы должны использовать версию 2, если планируете использовать запросы группы сбора . Вы должны rules_version = '2';
на версию 2, rules_version = '2';
первая строка в ваших правилах безопасности:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
Правила написания
Все Облако Firestore Правило безопасности состоит из 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 предоставляет имитатор правил, который можно использовать для тестирования своего набора правил. Вы можете получить доступ к симулятору на вкладке Rules в разделе Cloud Firestore консоли Firebase.
Симулятор правил позволяет моделировать чтение, запись и удаление с проверкой подлинности и без проверки подлинности. При имитации запроса с проверкой подлинности вы можете создавать и предварительно просматривать маркеры проверки подлинности от различных поставщиков. Смоделированные запросы выполняются в соответствии с набором правил в вашем редакторе, а не с текущим развернутым набором правил.
Развертывание правил
Прежде чем вы сможете начать использовать Cloud Firestore из своего мобильного приложения, вам необходимо развернуть правила безопасности. Вы можете развернуть правила в консоли Firebase или с помощью интерфейса командной строки Firebase.
Обновление правил безопасности Cloud Firestore может занять до минуты, чтобы повлиять на новые запросы и прослушиватели. Однако полное распространение изменений и воздействие на всех активных слушателей может занять до 10 минут.
Используйте консоль Firebase
Чтобы настроить и развернуть свой первый набор правил, откройте вкладку « Правила » в разделе Cloud Firestore консоли Firebase.
Напишите свои правила в онлайн-редакторе, затем нажмите « Опубликовать» .
Используйте интерфейс командной строки 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 your .rules file
firebase deploy --only firestore:rules
Следующие шаги
- Узнайте, как структурировать правила безопасности .
- Напишите собственные условия правил безопасности .
- Прочтите справочник по правилам безопасности .