'FIrebase deploy error: Cannot find module 'firebase-admin'

I recently started getting the error below when trying to deploy to Firebase (after having done so successfully in the past). I'm not sure what might have changed for this to start occurring. If I run firebase serve to serve on the localhost, everything works fine. My package.json and requires from index.js are also below.

i  deploying functions, hosting
i  functions: ensuring necessary APIs are enabled...
i  runtimeconfig: ensuring necessary APIs are enabled...
+  runtimeconfig: all necessary APIs are enabled
+  functions: all necessary APIs are enabled
i  functions: preparing functions directory for uploading...
i  functions: packaged functions (46.02 KB) for uploading
+  functions: functions folder uploaded successfully
i  hosting: preparing public directory for upload...
!  Warning: Public directory does not contain index.html
+  hosting: 9 files uploaded successfully
i  starting release process (may take several minutes)...
i  functions: updating function app...
!  functions[app]: Deploy Error: Function load error: Code in file index.js can't be loaded.
Did you list all required modules in the package.json dependencies?
Detailed stack trace: Error: Cannot find module 'firebase-admin'
at Function.Module._resolveFilename (module.js:469:15)
at Function.Module._load (module.js:417:25)
at Module.require (module.js:497:17)
at require (internal/module.js:20:19)
at Object.<anonymous> (/user_code/node_modules/firebase-functions/lib/apps.j
s:25:16)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)


Functions deploy had errors. To continue deploying other features (such as datab
ase), run:
firebase deploy --except functions

Error: Functions did not deploy properly.

package.json:

{
"name": "functions",
"description": "Cloud Functions for Firebase",
"dependencies": {
"@google-cloud/vision": "^0.12.0",
"async": "^2.5.0",
"consolidate": "^0.14.5",
"express": "^4.15.4",
"firebase-admin": "^5.4.0",
"firebase-functions": "^0.5.7",
"handlebars": "^4.0.10",
"jquery": "^3.2.1",
"js-levenshtein": "^1.1.3",
"json-query": "^2.2.2"
},
"private": true
}

From index.js:

const functions = require('firebase-functions');
const firebase = require('firebase-admin');
const express = require('express');
const engines = require('consolidate');
const Vision = require('@google-cloud/vision');
const levenshtein = require('js-levenshtein');
const restName = require('./restName');
const parser = require('./parser');
const jsonQuery = require('json-query')

const firebaseApp = firebase.initializeApp(
functions.config().firebase
);


Solution 1:[1]

They have an active service disruption. Follow this for a workaround: https://status.firebase.google.com/incident/Functions/17024

Run the following commands inside the functions repository:

npm install --save-exact [email protected] npm install --save-exact [email protected]

Then try deploying functions again:

firebase deploy --only functions

If npm doesn't work, you can try yarn which worked for us:

yarn add [email protected] --exact yarn add [email protected] --exact

Solution 2:[2]

enter image description here

So the issue is that package.json inside Functions folder is different from package.json in your project directory. yes, you have 2 of this file!

So if you want to deploy, (deploy Functions), run npm install express or install other dependencies inside Function folder and you will be able to deploy with no error.

Solution 3:[3]

run the following command

npm i firebase-admin 

Solution 4:[4]

Update file package.json in folder functions and look at dependencies remove sign ~ from firebase-admin and ^ from firebase-functions it should be like:

"dependencies": {
  "firebase-admin": "5.4.0",
  "firebase-functions": "0.7.0"
}

in command line type

npm install

and then try to deploy again.

Solution 5:[5]

I went to the functions directory and ran yarn (or npm install if you are old-school). Then went back to my project directory and ran firebase deploy again.

Solution 6:[6]

I also got same error. i fix that error from installing different version in nodejs. I uninstall my new version and i install Node v7.8.0. then it works fine :)

Solution 7:[7]

Try installing: npm i -g [email protected]

This solved my issue.

Solution 8:[8]

If using docker, ensure your local version of nodejs is the same as the one you are using on the docker file. For example, if I am using node v16.14.0, (find out by typing this in your terminal) node -v, then sample docker file should be :

FROM node:16.14.0-alpine                             
ENV NODE_ENV=production                 
WORKDIR /app                            
COPY package*.json ./                  
RUN npm install --production            
COPY . .                                
CMD [ "npm", "start" ] 

             

Solution 9:[9]

The things I did to fix this

1.) Make sure I was in the proper directory's package.json

2.) rm -rf node-modules

3.) npm i (missing module)

4.) Made the missing dependencies were NOT in devDependencies but rather in dependencies in the package.json, nothing in devDependencies gets deployed

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1
Solution 2 Soley
Solution 3 Nishikanta Parida
Solution 4
Solution 5 Rory
Solution 6 chashikajw
Solution 7 Ilir Hushi
Solution 8 Manjurul Khan
Solution 9 Jason