web-dev-qa-db-fra.com

Utilisez la fonction cloud de Firebase pour envoyer une demande POST) à un serveur non google

Je me demandais s'il était possible d'utiliser une fonction cloud Firebase pour envoyer une demande de publication à un serveur autre que Google.

En gros, je veux POST) sur un serveur externe qui s'exécute sur un arduino chaque fois qu'une valeur est ajoutée à ma base de données.

J'ai parcouru la documentation et trouvé des exemples de fonctions de cloud répondant à une demande de publication HTTP (fonctions de cloud HTTP), mais je n'arrive pas à trouver des exemples de publication sur un serveur externe. Est-ce possible?

35
Stone Preston

Cela peut être fait en utilisant le module request :

// import the module
var request = require('request');

// make the request
request('put your external url here', function (error, response, body) {
    if (!error && response.statusCode == 200) {
        //here put what you want to do with the request
    }
})

NOTE: Cela ne fonctionnera que sur les plans payés. Il n'est pas possible d'appeler des API non Google à l'aide du plan Spark gratuit), comme expliqué à la page page de tarification de Firebase :

Le plan Spark autorise les requêtes réseau sortantes uniquement à des services appartenant à Google. Les demandes d'invocation entrantes sont autorisées dans les limites du quota. Sur le plan Blaze, Cloud Functions fournit un niveau libre perpétuel. Les 2 000 000 premiers appels, 400 000 Go/s, 200 000 UC/s et 5 Go de trafic de sortie Internet sont fournis gratuitement chaque mois.Le tarif est calculé en fonction de l'utilisation dépassée par cette attribution gratuite. La tarification est basée sur le nombre total d'appels et le temps de calcul. est variable en fonction de la quantité de mémoire et de CPU fournie pour une fonction. Des limites d'utilisation sont également appliquées par le biais de quotas quotidiens et de 100. Pour plus d'informations, voir Tarification des fonctions dans le cloud .

48
stodi

Vous devez installer le package. Accédez au répertoire Firebase-Funcions dans Terminal et tapez

npm install request

OR

npm install request-promise

Utilisez cet exemple pour le test: https://www.npmjs.com/package/request

7
RodolfoNeto

N'oubliez pas d'installer le module dans le dossier des fonctions!

cd functions
npm i --save request
2
Cesare