Quand je lance firebase deploy
Je reçois ce message d'erreur:
functions: HTTP Error: 400, Change of function trigger type or event provider is not allowed
firebase functions:delete yourFunction // this can be done via the Firebase Console as well
firebase deploy
Fondamentalement, Cloud Functions attend le même déclencheur pour chaque fonction tout le temps, c'est-à-dire qu'une fois qu'il est créé, il doit s'en tenir à son déclencheur d'origine car chaque nom de fonction est connecté à un déclencheur spécifique. Le déclencheur ne peut donc être modifié qu'en en supprimant la fonction d'abord puis en la recréant avec un déclencheur différent.
Cela peut maintenant être fait facilement en utilisant le functions:delete
commande:
firebase functions:delete yourFunction
la documentation propose des cas d'utilisation plus avancés également.
La solution consiste essentiellement à commenter ou à supprimer votre fonction, puis à enregistrer le fichier de fonctions et à déployer. La fonction sera supprimée dans Firebase, mais après cela, vous pouvez insérer/décommenter votre fonction et elle se déploiera à nouveau très bien. Cette erreur se produit lorsque vous prenez une fonction et changez le type de déclencheur qu'elle utilise, c'est-à-dire HTTP, base de données ou authentification.
Découpez-le d'abord
/* exports.yourFunction = someTrigger... */
Et puis, après déploiement ("déploiement firebase") remplacez votre déclencheur
exports.yourFunction = anotherTrigger...
Vous pouvez également accéder au panneau Fonctions cloud dans la console Google Cloud Platform et supprimer votre fonction à partir de là. Après cela, vous pouvez télécharger la fonction normalement à partir de la CLI Firebase. Je ne sais pas pourquoi ils n'ont pas d'option de fonction de suppression dans la console Firebase.