Appel d’une fonction cloud à partir d’une autre fonction cloud

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.