Firebase-functions: Detailed stack trace: Error: Cannot find module 'firebase'

Created on 26 Aug 2020  路  1Comment  路  Source: firebase/firebase-functions

[READ] Step 1: Are you in the right place?
I think so.

[REQUIRED] Step 2: Describe your environment

Operating System version:Win10
Firebase SDK version: "^7.19.0"

[REQUIRED] Step 3: Describe the problem

 firebase deploy --only functions                                                             

== Deploying to 'screams-62f3b'...                                                            

  deploying functions                                                                         
  functions: ensuring required API cloudfunctions.googleapis.com is enabled...                

  functions: The Node.js 8 runtime is deprecated and will be decommissioned on 2021-03-15. For
more information, see: https://firebase.google.com/support/faq#functions-runtime              

  functions: required API cloudfunctions.googleapis.com is enabled                            
  functions: preparing functions directory for uploading...                                   
  functions: packaged functions (28.55 KB) for uploading                                      
  functions: functions folder uploaded successfully                                           
  functions: updating Node.js 8 (Deprecated) function api(europe-west6)...                    
  functions[api(europe-west6)]: Deployment error.                                             
unction failed on loading user code. Error message: Code in file index.js can't be loaded.    
id you list all required modules in the package.json dependencies?                            
Detailed stack trace: Error: Cannot find module 'firebase'                                     
   at Function.Module._resolveFilename (module.js:548:15)                                     
   at Function.Module._load (module.js:475:25)                                                
   at Module.require (module.js:597:17)                                                       
   at require (internal/module.js:11:18)                                                      
   at Object.<anonymous> (/srv/index.js:4:18)                                                 
   at Module._compile (module.js:653:30)                                                      
   at Object.Module._extensions..js (module.js:664:10)                                        
   at Module.load (module.js:566:32)                                                          
   at tryModuleLoad (module.js:506:12)                                                        
   at Function.Module._load (module.js:498:3)    

Original Code:

````
const functions = require('firebase-functions');
const admin = require('firebase-admin');
const express = require('express');
const firebase = require('firebase');

admin.initializeApp();
const app = express();
const firebaseConfig = {
apiKey: "secret",
authDomain: "screams-62f3b.firebaseapp.com",
databaseURL: "https://screams-62f3b.firebaseio.com",
projectId: "screams-62f3b",
storageBucket: "screams-62f3b.appspot.com",
messagingSenderId: "secret number",
appId: "secret app id"
};

firebase.initializeApp(firebaseConfig);

// Routes
// @GET screams
// desc: get all screams
// desc: get all screams
// desc: get all screams
// privacy: public

app.get('/screams', (req, res) => {
admin.firestore()
.collection('screams')
.orderBy('createdAt', 'desc')
.get()
.then(data => {
let screams = [];
data.forEach(doc => {
screams.push({
screamId: doc.id,
body: doc.data().body,
userHandle: doc.data().userHandle,
createdAt: doc.data().createdAt
});
});
return res.send(screams);
})
.catch(err => console.error('ERROR: ', err))
});

// @GET screams
// desc: send new scream
// privacy: private

app.post('/scream', (req, res) => {
const newScream = {
body: req.body.body,
userHandle: req.body.userHandle,
createdAt: new Date().toISOString()
};

admin.firestore()
.collection('screams')
.add(newScream)
.then(doc => res.json({ message: document ${doc.id} created successfully }))
.catch(err => {
res.status(500).json({ error: 'something went wrong' });
console.error('ERROR: ', err);
});
});

// @POST /signup
// desc: sign up newUser
// privacy: public

app.post('/signup', (req, res) => {
const newUser = {
email: req.body.email,
password: req.body.password,
confirmPassword: req.body.confirmPassword,
handle: req.body.handle
};

// validate newUser data
firebase
.auth()
.createUserWithEmailAndPassword(newUser.email, newUser.password)
.then(data => {
return res.status(201).json({ message: user ${data.user.uid} signed up successfully });
})
.catch(err => {
console.error(err);
return res.status(500).json({ error: err.code });
});
});

exports.api = functions.region('europe-west6').https.onRequest(app);
````

my package.json:

{
  "name": "react-app-sample",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "@material-ui/core": "^4.11.0",
    "@testing-library/jest-dom": "^4.2.4",
    "@testing-library/react": "^9.3.2",
    "@testing-library/user-event": "^7.1.2",
    "express": "4.16.2",
    "firebase": "^7.19.0",
    "firebase-admin": "^9.1.1",
    "firebase-functions": "^3.11.0",
    "moment": "^2.27.0",
    "react": "^16.13.1",
    "react-dom": "^16.13.1",
    "react-redux": "^7.2.1",
    "react-router-dom": "^5.2.0",
    "react-scripts": "3.4.3",
    "redux": "^4.0.5"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  },
  "eslintConfig": {
    "extends": "react-app"
  },
  "browserslist": {
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version"
    ]
  }
}

needs-triage

>All comments

I couldn't figure out how to label this issue, so I've labeled it for a human to triage. Hang tight.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

h36ahmed picture h36ahmed  路  5Comments

ahaverty picture ahaverty  路  6Comments

jspri picture jspri  路  5Comments

ChromeQ picture ChromeQ  路  4Comments

alexbjorlig picture alexbjorlig  路  6Comments