Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

Начать работу с правилами безопасности Cloud Firestore

С помощью правил безопасности Cloud Firestore вы можете сосредоточиться на создании удобного взаимодействия с пользователем без необходимости управлять инфраструктурой или писать код проверки подлинности и авторизации на стороне сервера.

Правила безопасности обеспечивают контроль доступа и проверку данных в простом, но выразительном формате. Для сборки на основе пользователей и роли на основе систем доступа , которые хранят данные ваших пользователей в безопасности, вы должны использовать Firebase аутентификацию с Cloud правил безопасности Firestore.

Правила безопасности версии 2

По состоянию на май 2019 года доступна версия 2 правил безопасности Cloud Firestore. Версия 2 правил изменяет поведение рекурсивных подстановки {name=**} . Вы должны использовать версию 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 предоставляет имитатор правил, который можно использовать для тестирования своего набора правил. Вы можете получить доступ к симулятору от вкладки Правила в разделе 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

Следующие шаги