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

Premiers pas avec les règles de sécurité Cloud Firestore

Avec les règles de sécurité Cloud Firestore, vous pouvez vous concentrer sur la création d'une expérience utilisateur exceptionnelle sans avoir à gérer l'infrastructure ou à écrire un code d'authentification et d'autorisation côté serveur.

Les règles de sécurité fournissent le contrôle d'accès et la validation des données dans un format simple mais expressif. Pour construire des systèmes d'accès et basés sur les rôles basés sur les utilisateurs qui conservent les données de vos utilisateurs en toute sécurité, vous devez utiliser Firebase authentification avec Cloud FireStore Règles de sécurité.

Règles de sécurité version 2

Depuis mai 2019, la version 2 des règles de sécurité Cloud Firestore est désormais disponible. La version 2 des règles modifie le comportement des jokers récursives {name=**} . Vous devez utiliser la version 2 si vous prévoyez d'utiliser les requêtes de groupe de collecte . Vous devez opt-in pour la version 2 en faisant rules_version = '2'; la première ligne de vos règles de sécurité :

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {

Règles d'écriture

Tous les nuages FireStore Règles de sécurité se composent de match des déclarations qui identifient les documents dans votre base de données et allow des expressions, qui contrôle l' accès à ces documents:

service cloud.firestore {
  match /databases/{database}/documents {
    match /<some_path>/ {
      allow read, write: if <some_condition>;
    }
  }
}

Chaque requête de base de données d'une bibliothèque cliente mobile/web Cloud Firestore est évaluée par rapport à vos règles de sécurité avant de lire ou d'écrire des données. Si les règles refusent l'accès à l'un des chemins de document spécifiés, la demande entière échoue.

Vous trouverez ci-dessous quelques exemples d'ensembles de règles de base. Bien que ces règles soient valides, elles ne sont pas recommandées pour les applications de production :

Authentification requise

// 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;
    }
  }
}

Nier tous

// Deny read/write access to all users under any conditions
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if false;
    }
  }
}

Autorise tout

// 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;
    }
  }
}

Le {document=**} chemin utilisé dans les exemples ci - dessus correspond à tout le document dans la base de données. Continuer sur le guide des règles de sécurité structurante pour apprendre comment faire correspondre les chemins de données spécifiques et le travail avec des données hiérarchiques.

Règles de test

Cloud Firestore fournit un simulateur de règles que vous pouvez utiliser pour tester votre ensemble de règles. Vous pouvez accéder au simulateur de l' onglet Règles dans la section Nuage Firestore de la console Firebase.

Le simulateur de règles vous permet de simuler des lectures, des écritures et des suppressions authentifiées et non authentifiées. Lorsque vous simulez une demande authentifiée, vous pouvez créer et prévisualiser des jetons d'authentification de différents fournisseurs. Les requêtes simulées s'exécutent par rapport à l'ensemble de règles de votre éditeur, et non à votre ensemble de règles actuellement déployé.

Déploiement des règles

Avant de pouvoir commencer à utiliser Cloud Firestore à partir de votre application mobile, vous devez déployer des règles de sécurité. Vous pouvez déployer des règles dans la console Firebase ou à l'aide de la CLI Firebase.

Les mises à jour des règles de sécurité Cloud Firestore peuvent prendre jusqu'à une minute pour affecter les nouvelles requêtes et les nouveaux écouteurs. Cependant, la propagation complète des modifications peut prendre jusqu'à 10 minutes et affecter tous les auditeurs actifs.

Utiliser la console Firebase

Pour configurer et déployer votre première série de règles, ouvrez l' onglet Règles dans la section Nuage Firestore de la console Firebase.

Ecrivez vos règles dans l'éditeur en ligne, puis cliquez sur Publier.

Utiliser l'interface de ligne de commande Firebase

Vous pouvez également déployer des règles à l' aide de l' Firebase CLI . L'utilisation de la CLI vous permet de garder vos règles sous contrôle de version avec votre code d'application et de déployer des règles dans le cadre de votre processus de déploiement existant.

// 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

Prochaines étapes