Je reçois cette erreur à chaque fois que je m'exécute avec mon HTTP Firebase Cloud
Function execution took ****ms, finished with status: 'connection error'
Cela se produit de manière incohérente, mais je ne parviens pas à cerner le problème. Je ne crois pas que l'erreur se trouve dans mon application, car elle ne montre pas l'impression d'une erreur. Et ma propre connexion avec firebase lors de l’exécution de cette fonction de cloud n’écartera pas.
Avez-vous une idée des raisons pour lesquelles Firebase ne parvient pas à exécuter de façon aléatoire les exécutions de fonctions cloud avec "erreur de connexion"?
Function execution took ****ms, finished with status: 'connection error'
a deux causes principales:
Quelques exemples de promesses non rendues:
exports.someFunc = functions.database.ref(‘/some/path’).onCreate(event => {
let db = admin.database();
// UNRETURNED PROMISE
db.ref(“/some/path”).remove();
return db.ref(“/some/other/path”).set(event.data.val());
});
exports.makeUppercase = functions.database.ref('/hello/{pushId}').onWrite(event => {
return event.data.ref.set('world').then(snap => {
// UNRETURNED PROMISE
admin.database().ref('lastwrite').set(admin.database.ServerValue.TIMESTAMP);
});
});
exports.makeUppercase = functions.database.ref('/hello/{pushId}').onWrite(event => {
// UNRETURNED PROMISE
event.data.ref.set('world').then(snap => {
return admin.database().ref('lastwrite').set(admin.database.ServerValue.TIMESTAMP);
});
});
Pour vous aider à résoudre cette erreur avant de déployer du code, consultez cette règle eslint .
Pour un examen approfondi des promesses, voici quelques ressources utiles:
Je pense que cela pourrait être trop de connexions simultanées à la base de données Firebase:/ https://groups.google.com/forum/#!topic/firebase-talk/4RjyYIDQMVQ
il pourrait s'agir de bibliothèques obsolètes.
aller au terminal
commande à l'intérieur du dossier des fonctions
nPM obsolète
cela montrera que toutes les bibliothèques doivent être mises à jour.
npm update
firebase deploy --only functions
Je reçois cela sur un déclencheur HTTP qui appelle immédiatement response.end () sans autre code!
J'avais une fonction très complexe qui fonctionnait très bien, puis elle a cessé de fonctionner à cause de cette erreur. J'ai essayé pendant des heures de jouer avec mon code jusqu'à ce qu'il ne reste plus qu'une réponse.end () et l'erreur persiste.
J'ai trouvé qu'en supprimant le déclencheur (le déploiement de mes déclencheurs avec le déclencheur incriminé mis en commentaire), le déploiement à nouveau avec le déclencheur non commenté semble l'avoir corrigé.
Il existe peut-être un bogue qui fonctionne et qui est réinitialisé lorsque vous supprimez le déclencheur dans le cloud.
J'espère que cela évite une certaine frustration à quelqu'un.