Wanted to achieve a firebase only approach to a mobile site, so I decided to make a simple API gateway to my app so I call a cloud function endpoint instead of calling my external API and expose my api keys.
I followed the simple hello world example and was ok.
As soon as I added the request-promise module as stated in Google samples (from translate and from url Shortening example) I cannot go forward. because this arises.
Error parsing triggers: Cannot find module 'request-promise'
tested with 'request' module with same results.
My index.js is really simple
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
const request = require('request-promise');
// Create and Deploy Your First Cloud Functions
// 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);
});
Right now without the const request = require('request-promise'); or const request = require('request'); it deploys ok and display the url to be called.
Really don't know what to do, I already tested creating a new project and just issue this
this is my package.json content:
{
"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
}
Is that difficult to implement this in Firebase cloud functions ?
thanks for your help.
If you want to use an npm module in your Cloud Function, cd
to the functions directory and run the command npm install request-promise
or whatever the module is named. This will add the module to your package.json file. Then, when you run firebase deploy
, the module will be available to your code running in Google's cloud. If you try to use a module that's not listed in package.json, your code will fail.
I had the same issue and fixed it installing both, request and request-promise. Go to the directory where your functions live and execute:
npm install --save request request-promise
The --save will take care of updating your package.json. Then redeploy and it should work.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With