46 votes

Erreur : Erreur HTTP 400, La requête comporte des erreurs. Fonctions cloud Firebase Firestore

Lorsque j'exécute la commande firebase deploy j'obtiens cette erreur :

i déployer des fonctions

i fonctions : s'assurer que les APIs nécessaires sont activées...

i runtimeconfig : s'assurer que les APIs nécessaires sont activées...

runtimeconfig : toutes les API nécessaires sont activées

fonctions : toutes les API nécessaires sont activées

i fonctions : préparation du répertoire des fonctions pour le téléchargement...

i functions : fonctions packagées (4.04 KB) pour le téléchargement

functions : le dossier functions a été téléchargé avec succès

je lance le processus de libération (cela peut prendre plusieurs minutes)...

i fonctions : création de la fonction followerNotification...

functions : échec de la création de la fonction followerNotification

fonctions : Erreur HTTP : 400, La demande a des erreurs

fonctions : 1 fonction(s) n'a pas été déployée.

Les fonctions déployées ont eu des erreurs. Pour continuer à déployer d'autres fonctions (comme >la base de données), exécutez : firebase deploy --except functions

Erreur : Les fonctions ne se sont pas déployées correctement.

Vous avez des problèmes ? Essayez firebase deploy --help

Tout le reste fonctionne sans problème. Seulement quand j'essaie de faire quelque chose avec Firebase Firestore.

113voto

Ivan Points 881

Cela m'arrivait aussi, puis j'ai réalisé qu'au 2ème niveau, firestore n'autorise que les documents et pas les collections.

J'essayais d'écouter ce chemin :

/collection/document/{wildcard}

Vous pouvez soit faire quelque chose comme

/collection/{wildcard}

ou

/collection/document/collection/{wildcard}

11 votes

Même problème ici ! Bizarre qu'il n'y ait pas de message d'erreur descriptif pour cela.

2 votes

Okej, cela ne peut pas être la réponse puisque le nombre de niveaux n'a pas d'importance. Vous pouvez imbriquer ceci autant que vous le souhaitez. Regarde ma réponse

0 votes

@ivan : Facilement, vous m'avez fait gagner 3-4 heures ! Merci pour cela :)

13voto

adamduren Points 1713

J'ai également eu ce problème. Dans mon cas, c'était parce que le chemin du déclencheur comportait un slash de fin dans le chemin du document.

Si changeant :

functions.firestore
  .document('some_path/{pushId}/')

A :

functions.firestore
  .document('some_path/{pushId}')

Je l'ai réparé pour moi. Il semble que cela soit causé par une variété de problèmes et la clique de firebase ne fait pas un bon travail pour expliquer les raisons.

0 votes

C'était mon problème, merci !

0 votes

J'avais à la fois ce problème et celui de la réponse actuellement acceptée par Ivan.

6voto

Raphael Jenni Points 152

Le problème est que vous ne faites référence qu'à une collection et non à un document comme :

exports.myFunctionName = functions.firestore
      .document('users').onWrite((event) => {
        // ... Your code here
      });

Vous devez référencer le document comme :

exports.myFunctionName = functions.firestore
  .document('users/marie').onWrite((event) => {
    // ... Your code here
  });

Vous pouvez également utiliser un joker comme :

exports.myFunctionName = functions.firestore
  .document('users/{userId}').onWrite((event) => {
    // ... Your code here
  });

C'est décrit ici : https://firebase.google.com/docs/functions/firestore-events

J'espère pouvoir vous aider

9 votes

Les deux premières fonctions sont les mêmes !

4voto

Le problème était probablement dû à la longueur du nom de la fonction.

Donc, si le nom est :

myFunctionsFromWorksWithCustumersTiggersTests

changer pour un nom plus court, comme :

WorkWithCustumers

J'espère avoir aidé.

0 votes

Merci. En jouant un peu, il semble que les noms de fonctions aient une longueur maximale de 64 caractères.

1voto

SHUBHAM SINGH Points 21

J'obtenais également la même erreur jusqu'à ce que je change le nom de ma fonction de

créer_le_template

à

créer_nouveau_modèle

Il se peut que le caractère '_' (soulignement) à la fin du nom de la fonction soit à l'origine de cette erreur.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X