J’utilise une fonction de nuage pour appeler une autre fonction de nuage sur le niveau spark gratuit.
Existe-t-il un moyen spécial d’appeler une autre fonction cloud? Ou utilisez-vous simplement une requête http standard?
J’ai essayé d’appeler l’autre fonction directement comme ceci:
exports.purchaseTicket = functions.https.onRequest((req, res) => { fetch('https://us-central1-functions-****.cloudfunctions.net/validate') .then(response => response.json()) .then(json => res.status(201).json(json)) })
Mais j’ai l’erreur
FetchError: demande à https: // us-central1-fonctions- ****. Échec de cloudfunctions.net/validate, raison: getaddrinfo ENOTFOUND us-central1-fonctions – *****. Cloudfunctions.net us-central1-fonctions – *****. cloudfunctions.net:443
Ce qui sonne comme firebase bloque la connexion, alors que Google le possède, et ne devrait donc pas être verrouillé
le plan Spark n’autorise que les requêtes réseau sortantes vers des services appartenant à Google.
Comment utiliser une fonction cloud pour appeler une autre fonction cloud?
Vous n’avez pas besoin de faire appel à des fonctionnalités partagées via un tout nouvel appel HTTPS. Vous pouvez simplement résumer les éléments de code courants en une fonction javascript normale appelée par l’une ou l’autre. Par exemple, vous pouvez modifier la fonction template helloWorld comme suit:
var functions = require('firebase-functions'); exports.helloWorld = functions.https.onRequest((request, response) => { common(response) }) exports.helloWorld2 = functions.https.onRequest((request, response) => { common(response) }) function common(response) { response.send("Hello from a regular old function!"); }
Ces deux fonctions feront exactement la même chose, mais avec des points de terminaison différents.