Résoudre cloud_firestore/permission-denied dans Flutter


Avatar de Pierre Courtois

Dans ce guide, je vous explique comment facilement résoudre l’erreur [cloud_firestore/permission-denied] The caller does not have permission to execute the specified operation.


cloud_firestore/permission-denied

Résoudre l’erreur cloud_firestore/permission-denied

L’erreur [cloud_firestore/permission-denied] The caller does not have permission to execute the specified operation signifie que votre application Flutter, ou votre utilisateur n’a pas les autorisations nécessaires pour lire ou écrire des données dans Firestore. Cela se produit généralement en raison des règles de sécurité de Firestore qui bloquent l’accès non authentifié ou non autorisé.

La manière de résoudre ce problème est de changer vos règles de sécurité en allant dans :

  1. La console Firebase de votre projet ;
  2. Firestore database ;
  3. Règles.

Vous pouvez alors changer vos règles, pour les rendre moins restrictives.

Pour accéder à vos documents Firebase sans aucune authentification (uniquement pour le développement), vous pouvez configurer vos règles de sécurité comme ceci :

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if true;
    }
  }
}

Dans ce cas, vous n’avez pas besoin de vous authentifier pour modifier ou accéder à vos documents.

Laissez n’importe qui accéder à vos documents Firebase sans s’identifier peut-être dangereux. Je vous conseille donc de laisser ces règles de manière temporaire le temps d’ajouter un système d’authentification, puis de les changer.

La manière reste de créer un système d’authentification pour vos utilisateurs et de changer vos règles comme suit :

rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
 match /{document=**} {
  allow read, write: if request.auth != null;
  }
 }
}

Ces règles permettent l’accès uniquement aux utilisateurs connectés via un des systèmes que vous aurez mis en place.

Avatar de Pierre Courtois