Начать работу с правилами безопасности 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

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