Firebase functions fails to deploy with same error in all functions - firebase

I'm trying to deploy my firebase functions but all the functions return me error, I had already deployed before without any error.
I did not install anything new since the last time that a deploy was correct.
Every functions return almost the same error, the only thing that changes is the "errorId"
I have tried to logout from firebase-cli and login again, i have updated firebase-tools, firebase-admin, firebase-functions from npm.
I'm deploying with firebase deploy --only functions
Deployment error.
Build failed:
{
"error": {
"canonicalCode": "INVALID_ARGUMENT",
"errorMessage": "`npm_install` had stderr output:\nnpm WARN tar ENOENT: no such file or directory, open '/workspace/node_modules/.staging/#types/lodash-973f4ada/common/collection.d.ts'\nnpm WARN tar ENOENT: no such file or directory, open '/workspace/node_modules/.staging/#types/node-29231f2f/inspector.d.ts'\nnpm WARN tar ENOENT: no such file or directory, open '/workspace/node_modules/.staging/#types/node-f1c8db24/inspector.d.ts'\nnpm WARN tar ENOENT: no such file or directory, open '/workspace/node_modules/.staging/#firebase/auth-1b85ce5b/dist/auth.esm.js.map'\nnpm WARN tar ENOENT: no such file or directory, open '/workspace/node_modules/.staging/#firebase/webchannel-wrapper-e6854ec7/dist/index.js'\nnpm ERR! code E404\nnpm ERR! 404 Not Found: grpc#1.20.1\n\nnpm ERR! A complete log of this run can be found in:\nnpm ERR! /builder/home/.npm/_logs/2019-06-08T18_16_17_266Z-debug.log\n\nerror: `npm_install` returned code: 1",
"errorType": "InternalError",
"errorId": "FD2536C1"
}
}
Package.json :
{
"name": "functions",
"engines": {
"node": "8"
},
"description": "Cloud Functions for Firebase",
"scripts": {
"lint": "eslint .",
"serve": "firebase serve --only functions",
"shell": "firebase functions:shell",
"start": "npm run shell",
"deploy": "firebase deploy --only functions",
"logs": "firebase functions:log"
},
"dependencies": {
"#firebase/storage": "^0.2.16",
"#google-cloud/vision": "^0.24.0",
"#sendgrid/mail": "^6.4.0",
"cors": "^2.8.5",
"dateformat": "^3.0.3",
"firebase": "^5.11.1",
"firebase-admin": "^7.4.0",
"firebase-functions": "^2.3.1",
"json2csv": "^4.5.1",
"mailchimp-api-v3": "^1.13.0",
"moment-timezone": "^0.5.25",
"openpay": "^1.0.3",
"paypal-rest-sdk": "^1.8.1",
"request": "^2.88.0"
},
"devDependencies": {
"eslint": "^4.12.0",
"eslint-plugin-promise": "^3.6.0",
"firebase-functions-test": "^0.1.6"
},
"private": true
}
Correct deploy of the functions.
Update***
I have tried to delete everything and uninstall every package except for the ones required for firebase-functions and start over with one test function in node 8 i'm having the same issue, with node 6 it was deployed, but i need to use node 8 because i need to use await/async

I had a similar deployment failure. I think it was caused by me running firebase deploy from the app directory rather the the app\functions directory. In any case, I ran the following commands from the terminal (using VSCode in my case) having changed into the app\functions directory. Deployment then worked perfectly.
npm install --save #google-cloud/storage
npm install --save firebase-admin#latest
npm install --save firebase-functions#latest
firebase deploy
Hope that helps.

Checking the log
You can examine the actual logs by using this command to open the log
firebase functions:log
Doing this is really helpful since specific issue will usually be visible there. I sometimes even had error as simple as a missing package name in package.json
It would have been much helpful if firebase could show better info on the errors directly. but at least we can find them here.
I hope it helps

I had similar issue and it ended up being a missing module in my package.json
You can view more detailed / useful logs here: https://console.cloud.google.com/logs

Firebase functions:log really helps! In my case I had not enabled signin method in the firebase project (:

Related

Vercel deployment error | npm ERR! code E404

I'm trying to deploy my website on vercel it is a regular static portfolio website connected with a headless cms (graphql). I've previously deployed a website on vercel, had some errors but the errors were understandable and I managed to solve them all. However, when I try to deploy my web now it returns errors I cannot understand. I have googled and spent a few hours trying to fix the problems but it resulted in nothing. I'm really curious what the npm ERR! code E404 is.
Full error messages
Cloning github.com/Dylanyves/mac-yves (Branch: main, Commit: bf98fa3)
Cloning completed: 410.928ms
Installing build runtime...
Build runtime installed: 2.790s
Looking up build cache...
Build Cache not found
Installing dependencies...
npm ERR! code E404
npm ERR! 404 Not Found - GET https://registry.npmjs.org/find-up/-/find-upy-2%20px-4.1.0.tgz - Not found
npm ERR! 404
npm ERR! 404 'find-up#https://registry.npmjs.org/find-up/-/find-upy-2 px-4.1.0.tgz' is not in this registry.
npm ERR! 404 You should bug the author to publish it (or use the name yourself!)
npm ERR! 404
npm ERR! 404 Note that you can also install from a
npm ERR! 404 tarball, folder, http url, or git url.
npm ERR! A complete log of this run can be found in:
npm ERR! /vercel/.npm/_logs/2022-05-17T13_28_43_498Z-debug-0.log
Error: Command "npm install" exited with 1
package.json
{
"name": "next-portfolio",
"version": "0.1.0",
"private": true,
"scripts": {
"dev": "next dev",
"build": "next build",
"start": "next start",
"lint": "next lint"
},
"dependencies": {
"aos": "^2.3.4",
"graphql": "^16.5.0",
"graphql-request": "^4.2.0",
"html-react-parser": "^1.4.12",
"next": "12.1.6",
"react": "18.1.0",
"react-dom": "18.1.0",
"uuid": "^8.3.2"
},
"devDependencies": {
"autoprefixer": "^10.4.7",
"eslint": "8.15.0",
"eslint-config-next": "12.1.6",
"postcss": "^8.4.13",
"tailwindcss": "^3.0.24"
}
}
You need to specify the Framework Preset in the Vercel's Build and Deployment settings.
Go through this documentation , this should help.

firebase: not found on github action deploy

React app deploys fine through local cli,
though on github actions it fails with error:
sh: 1: firebase: not found
Error: Process completed with exit code 127.
package.json:
"scripts": {
"start": "react-scripts start",
"build": "CI=false react-scripts build && firebase deploy -P riplir",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
What am I doing wrong here?
I would assume from this that you have the firebase executable on your desktop and not in the pipeline. Whilst the pipeline could be totally valid commands and configuration for firebase, it won't be able to do anything without the executable.
Try adding a pre-requisite command like:
npm init
npm install --save firebase
Or using an image that is guaranteed to have an up to date version of the firebase executable present.
See the Firebase package for more information.

Deploy Back end server step in Play billing sample app

I've followed all the steps in here to get the "Classy Taxi: Google Play Billing Subscriptions Android App Java Sample" running, however on the last step I'm very confused, it´s not clear to me as to how I´m supposed to deploy the back-end, here are the steps:
These are steps to build the backend server code located here
Make sure you have installed Node.js, npm, and Firebase CLI.
Run npm install to install dependencies.
Configure Cloud Functions for Firebase with your Android app and subscription products:
firebase use --add {your_firebase_project_id}
firebase functions:config:set app.package_name="your_android_application_id"
firebase functions:config:set app.basic_plan_sku="your_basic_subscription_product_sku_id"
firebase functions:config:set app.premium_plan_sku="your_premium_subscription_product_sku_id"
Run firebase deploy to deploy your backend to Cloud Functions for Firebase.
On the steps it´s not clear as to how the server will be deployed, it only mentioned the app id and the products SKU´s but not the code for the server so I need help clarifying that, please. I would like to see steps by step how to deploy the server.
This is what I´m currently doing:
1. Go to the root folder for the server
2. Open cmd from that folder
3. run the commands listed on the docs.
4. then I get this error:
=== Deploying to 'billing-project-c9f03'...
i deploying functions, hosting
Running command: npm --prefix "$RESOURCE_DIR" run lint
npm ERR! code ENOENT
npm ERR! syscall open
npm ERR! path C:\Users\frank\Desktop\Billing app\ClassyTaxiServer\server\package.json
npm ERR! errno -4058
npm ERR! enoent ENOENT: no such file or directory, open 'C:\Users\frank\Desktop\Billing app\ClassyTaxiServer\server\package.json'
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent
npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\frank\AppData\Roaming\npm-cache\_logs\2020-04-13T01_21_30_198Z-debug.log
Error: functions predeploy error: Command terminated with non-zero exit code429496323
But I see the package.json file on the root folder.
See the Firebase CLI reference. This should be the project's root directory ClassyTaxiServer; assuming that you've ran all previous steps successfully, before attempting to firebase deploy. firebase.json knows what to do... however, that file is the actual problem; see PR #289.
Update firebase.json to this version and it should work out:
{
"functions": {
"predeploy": [
"npm --prefix \"$RESOURCE_DIR\" run lint",
"npm --prefix \"$RESOURCE_DIR\" run build"
],
"source": "."
},
"hosting": {
"public": "webapp",
"ignore": [
"firebase.json",
"**/.*",
"**/node_modules/**"
],
"rewrites": [ ]
}
}

Serving Firebase Functions doesn't hot reload on Windows

Serving Firebase Functions locally with the firebase serve command is supposed to enable hot reloading but this doesn't seem to work on windows, even with watchman installed. Is there a better solution aside from running npm build after each code change?
I mixed the 2 answers:
"scripts": {
"serve": "npm run build -- --watch | firebase emulators:start --only functions",
...
}
I do it the following way (additionally to galki`s answer):
firebase serve --only functions
and in another terminal tab I just use
npm run build -- --watch
from within functions directory. This way you have some kind of faster dev cycle.
To enable hot reloading on firebase functions with typescript you can add this 2 commands to your package.json file
"build:watch": "tsc -w"
"serve:watch": "npm run build:watch | firebase emulators:start --only functions",
If you want also to use path aliases feature you will be required to install 2 additional dev packages in order to make it work
npm install --save-dev tsc-alias concurrently
tsc-alias is for replacing alias paths with relative paths after typescript compilation of tsc compiler because the compiler alone can't resolve the alias paths
concurrently is for runing multiple commands concurrently
After installing the 2 packages you will need to add this 2 scripts to your package.json file
"build:watch": "concurrently --kill-others \"tsc -w\" \"tsc-alias -w\"",
"serve:watch": "npm run build:watch | firebase emulators:start --only functions",
Starting of development with hot reload then will be as easy as running only in the terminal
npm run serve:watch
Please Note:
I am using this versions of the packages
"firebase-admin": "^10.0.1",
"firebase-functions": "^3.14.1",
"tsc-alias": "^1.5.0",
"typescript": "^4.5.5",
"concurrently": "^7.0.0",
Older or newer versions might introduce some issues with compiling the code
Try following npm script
"serve": "./node_modules/.bin/tsc --watch | firebase serve --only functions"
It works as of the current point in time (firebase-tools 8.0.0).
Both
firebase serve --only functions
and
firebase emulators:start --only functions
work but one still needs to run npm run build manually each time.

Cannot find module 'webpack-cli'

I want to make es6 into my project so I used this tutorial this tutorial
and when i try to write 'webpack' in cmd I get the error
Done in 8.99s.
{ Error: Cannot find module 'webpack-cli'
at Function.Module._resolveFilename (module.js:470:15)
at Function.Module._load (module.js:418:25)
at Module.require (module.js:498:17)
at require (internal/module.js:20:19)
at runCommand.then.result (C:\Users\adirz\AppData\Roaming\npm\node_modules\webpack\bin\webpack.js:62:14)
at process._tickCallback (internal/process/next_tick.js:109:7) code: 'MODULE_NOT_FOUND' }
package.json
{
"name": "functions",
"scripts": {
"build": "tsc",
"serve": "npm run build && firebase serve --only functions",
"shell": "npm run build && firebase functions:shell",
"start": "npm run shell",
"deploy": "firebase deploy --only functions",
"logs": "firebase functions:log"
},
"main": "lib/index.js",
"dependencies": {
"firebase-admin": "~5.12.0",
"firebase-functions": "^1.0.1"
},
"devDependencies": {
"ts-loader": "^4.2.0",
"typescript": "^2.5.3",
"webpack": "^4.5.0",
"webpack-cli": "^2.0.14",
"webpack-node-externals": "^1.7.2"
},
"private": true
}
my folder structure
Try using: npm i -g webpack-cli.
Here is the official issue on github: https://github.com/webpack/webpack-cli/issues/191
Link globally installed package to your project
npm link webpack-cli
This solved the problem for me
sudo chown -R $USER /usr/local/lib/node_modules
npm i -g webpack-cli
https://flaviocopes.com/npm-fix-missing-write-access-error/
The problem for me it was that I was not using 'sudo' permissions.
If you are using linux based system try typing sudo npm i -g webpack-cli
I had a similar error. For me the answer was to ensure that the whole path to my project is free of spaces, ampersands(&) or any other weird characters.
If you are using Yarn instead NPM to run Webpack globally, you can install webpack using the following commands:
yarn global add webpack
and or
yarn global add webpack-cli

Resources