Validez rapidement les règles de sécurité Firebase

Pour tester rapidement votre Firebase Security Rules mis à jour dans la console Firebase, utilisez l'espace de test dédié aux règles.

L'espace de test dédié aux règles est un outil pratique à utiliser lorsque vous explorez de nouveaux comportements ou que vous validez rapidement des règles au fur et à mesure de leur écriture. Il affiche un message confirmant que l'accès a été autorisé ou refusé en fonction des paramètres que vous avez définis pour la simulation.

Utiliser l'espace de test dédié aux règles

  1. Ouvrez la console Firebase, puis sélectionnez votre projet.
  2. Ensuite, dans la navigation des produits, effectuez l'une des opérations suivantes :
    • Sélectionnez Realtime Database, Cloud Firestore ou Storage (Stockage), puis cliquez sur Rules (Règles) pour accéder à l'éditeur Rules.
  3. Une fois les modifications effectuées, cliquez sur Rules playground (Espace de test dédié aux règles) dans l'éditeur.
  4. Dans les paramètres Rules Playground, sélectionnez les options de votre test, y compris :
    • Tester les lectures ou les écritures
    • Un emplacement spécifique dans votre base de données ou votre bucket de stockage, sous forme de chemin d'accès
    • Type d'authentification : utilisateur non authentifié, utilisateur anonyme authentifié ou ID utilisateur spécifique.
    • Données du document auxquelles vos règles font référence (par exemple, si vos règles exigent la présence d'un champ spécifique avant d'autoriser une écriture).
  5. Cliquez sur Run (Exécuter) et recherchez les résultats dans la bannière située au-dessus de l'éditeur.

Exemple de scénario dans l'espace de test dédié aux règles

Testez le comportement de Rules Playground avec l'exemple de scénario et les règles de base suivants.

Cloud Firestore

service cloud.firestore {
  match /databases/{database}/documents {
    // Allow only authenticated content owners access
    match /some_collection/{document} {
      allow read, write: if request.auth != null && request.auth.uid == request.resource.data.author_uid
      }
    }
  }

Realtime Database

 // These rules grant access to a node matching the authenticated
 // user's ID from the Firebase auth token
 {
   "rules": {
     "users": {
       "$uid": {
         ".read": "$uid === auth.uid",
         ".write": "$uid === auth.uid"
       }
     }
   }
 }
 

Cloud Storage

// Grants a user access to a node matching their user ID
service firebase.storage {
  match /b/{bucket}/o {
    // Files look like: "user/<UID>/path/to/file.txt"
    match /user/{userId}/{allPaths=**} {
      allow read, write: if request.auth != null && request.auth.uid == userId;
    }
  }
}
  • Dans l'éditeur Rules, ajoutez la règle indiquée ci-dessus.

  • Sélectionnez get dans le menu déroulant Type de simulation, puis saisissez un chemin d'accès valide dans le champ Emplacement.

  • Activez Authentification, puis sélectionnez un type d'authentification dans le menu déroulant Fournisseur.

  • Saisissez les détails de l'ID utilisateur, puis cliquez sur Exécuter.

Les résultats de la simulation s'affichent en haut de l'éditeur. En fonction des détails de l'ID utilisateur que vous avez saisis, une bannière doit s'afficher pour confirmer que la lecture a bien été autorisée ou refusée.