web-dev-qa-db-fra.com

Firestore Cloud: autorisations manquantes ou insuffisantes

Je reçois (sur Android):

com.google.firebase.firestore.FirebaseFirestoreException: PERMISSION_DENIED: autorisations manquantes ou insuffisantes

en utilisant ces règles de sécurité:

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

Mon application semble être correctement authentifiée à l'aide de FirebaseAuth, étant donné que mFirebaseAuth.getCurrentUser().getUid() renvoie l'ID utilisateur approprié.

Y a-t-il quelque chose que je fais mal?

8
Daniele B

Edit: veux juste dire que j'ai réussi à résoudre le problème en rétrogradant à 4.6.2. J'ai plus de détails dans ce post

Pré-édition: Cela m’arrive depuis que j’ai mis à jour mon logiciel natif et je ne peux pas pour toute la vie comprendre le problème. Je l'ai débogué et mon utilisateur est définitivement authentifié au moment de la demande, j'ai vérifié cela en lançant le programme ci-dessous et j'ai un ID utilisateur à l'intérieur

firebase.auth().currentUser

Donc, la prochaine chose que je voulais faire était de vérifier la session dans la demande réelle pour voir ce qui se passait. J'ai ajouté un morceau de code au point d'entrée de mon application de réaction

XMLHttpRequest = GLOBAL.originalXMLHttpRequest ?
GLOBAL.originalXMLHttpRequest :
GLOBAL.XMLHttpRequest

et quand je lance ce code, il fonctionne à nouveau comme par magie. Il s’agit de déléguer des demandes via le navigateur, mais ce n’est probablement pas un véritable test.

Alors, j’ai démarré Charles et comparé les demandes de ma nouvelle version native de react à mon ancienne version [active] de base native. Les demandes me semblent identiques (à part un autre sessionId), donc je n’en ai aucune idée. Ce qui est frustrant, c’est le manque d’outils de débogage via la console Firestore.

Mon instinct est de dire que certains des en-têtes d'authentification sont expirés/mis en cache et que ce n'est pas un service de restauration. Frapper ma tête contre une table à ce point

3
JamesR

Il semble que ce soit un problème Firestore (en version bêta aujourd'hui), pas du côté client.

1
Jéwôm'

J'ai posé directement la question à l'équipe de support technique de Firebase car ce problème était plutôt critique pour notre service et j'ai reçu le courrier électronique ci-dessous. Il semble qu'ils aient corrigé le bogue maintenant.

S'il vous plaît laissez-moi savoir si le problème se reproduise.

Salut,

Nous venons de confirmer avec nos ingénieurs que ce problème sporadique avec nos règles de sécurité pour Firestore était un bug connu mais était déjà fixé aujourd'hui. Veuillez tester à nouveau vos règles de sécurité et laissez-nous savoir si vous rencontrez toujours le problème.

Cordialement, Kevin

1
wonsuc