6 votes

Firebase : Erreur d'analyse des déclencheurs : Impossible de trouver le module 'request-promise' pour une fonction cloud simple

Souhaitait réaliser une approche uniquement basée sur Firebase pour un site mobile, alors j'ai décidé de créer une passerelle API simple pour mon application afin d'appeler un endpoint de fonction cloud au lieu d'appeler mon API externe et d'exposer mes clés API.

J'ai suivi le simple exemple hello world et ça allait bien.

Dès que j'ai ajouté le module request-promise comme indiqué dans les exemples de Google (de la traduction et de l'exemple de raccourcissement d'URL), je ne peux pas avancer car cela s'élève.

Erreur d'analyse des déclencheurs : Impossible de trouver le module 'request-promise'

Testé avec le module 'request' avec les mêmes résultats.

Mon index.js est vraiment simple

const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
const request = require('request-promise');

// Créez et déployez vos premières fonctions cloud
// https://firebase.google.com/docs/functions/write-firebase-functions

exports.wxData = functions.https.onRequest((request, response) => {
 wwurl = "https://mycurrentendpoint.com/apicall.php?key=1234567890&lat="+request.query.lat+"&lon="+request.query.lon;   
 response.send(wwurl);
});

Actuellement, sans const request = require('request-promise'); ou const request = require('request'); il se déploie correctement et affiche l'URL à appeler.

Je ne sais vraiment pas quoi faire, j'ai déjà testé la création d'un nouveau projet et ai juste ce problème

Voici le contenu de mon package.json :

{
  "name": "functions",
  "description": "Cloud Functions for Firebase",
  "scripts": {
    "serve": "firebase serve --only functions",
    "shell": "firebase experimental:functions:shell",
    "start": "npm run shell",
    "deploy": "firebase deploy --only functions",
    "logs": "firebase functions:log"
  },
  "dependencies": {
    "firebase-admin": "~5.4.2",
    "firebase-functions": "^0.7.1"
  },
  "private": true
}

Est-ce difficile à mettre en œuvre dans les fonctions cloud Firebase ?

Merci pour votre aide.

11voto

Doug Stevenson Points 6978

Si vous souhaitez utiliser un module npm dans votre Cloud Function, cd vers le répertoire des fonctions et exécutez la commande npm install request-promise ou quel que soit le nom du module. Cela ajoutera le module à votre fichier package.json. Ensuite, lorsque vous exécutez firebase deploy, le module sera disponible pour votre code s'exécutant dans le cloud de Google. Si vous essayez d'utiliser un module qui n'est pas répertorié dans package.json, votre code échouera.

8voto

satanas Points 514

J'ai eu le même problème et je l'ai résolu en installant à la fois request et request-promise. Allez dans le répertoire où se trouvent vos fonctions et exécutez :

npm install --save request request-promise

Le --save se chargera de mettre à jour votre package.json. Ensuite, redéployez et cela devrait fonctionner.

4voto

Jeremiah Points 1125

Il n'est pas possible de trouver request-promise car il n'est pas installé. Il est indépendant de firebase donc vous devez l'ajouter à votre package.json. Je recommande également d'ajouter la bibliothèque request.

Ajoutez les deux lignes ci-dessous dans vos dépendances et exécutez npm install.

  "request": "^2.x",
  "request-promise": "^1.x"

1voto

Hanoj B Points 16

Premier changement de répertoire
1) cd functions

Ensuite, installez le package npm
2) npm install request-promise // n'a pas fonctionné pour moi, mais vous pouvez essayer.
3) npm i child-process-promise // A bien fonctionné pour moi!
Lien du package npm child-process-promise

Enfin, vous pouvez exécuter:
4) firebase deploy

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X