Firebase broken on M1 Mac - firebase

I have a new MacBook Air M1. Firebase had been working up until I did an upgrade of firebase-tools from 9.7.0 to 9.8.0 last week. After the upgrade, I get this error every time I try to run any "firebase " statement.
There is no source code directly involved in this question, for the person who closed the original question. To replicate this issue you'd have to have an M1 mac and be using firebase.
How can I fix this problem?
(Note for others who have this problem, the answer was provided in comments by #RandomDude below: just downgrade firebase-tools to 9.7.0)
steve#steves-air functions % firebase
dyld: lazy symbol binding failed: Symbol not found: __Z18sse42_is_availablev
Referenced from: /opt/homebrew/lib/node_modules/firebase-tools/node_modules/sse4_crc32/build/Release/crc32c.node
Expected in: flat namespace
dyld: Symbol not found: __Z18sse42_is_availablev
Referenced from: /opt/homebrew/lib/node_modules/firebase-tools/node_modules/sse4_crc32/build/Release/crc32c.node
Expected in: flat namespace
zsh: abort firebase

Update on April 7, 2021
Updating to firebase-tools#9.9.0 fixed the issue.
$ npm install -g firebase-tools
$ firebase --version
9.9.0
Temporal Solution
As it mentioned in the above comment by RandomDude, downgrading to 9.7.0 made it work for me.
$ firebase --version
# This will give you the same error.
# So, look at the directory where firebase-tools are installed.
$ cat /opt/homebrew/lib/node_modules/firebase-tools/package.json
{
"name": "firebase-tools",
"version": "9.8.0",
--- snip ---
Reinstall firebase-tools
$ npm uninstall -g firebase-tools
$ npm install -g firebase-tools#9.7.0
$ firebase --version
9.7.0
This is a temporal solution for me. Thanks to RandomDude.

Related

Multiple Versions of Firebase Installed - Which Do I Use?

I'm trying to build an app with Firebase and ran a few commands to see which version I have. To follow along with a 2021 instruction video, I was hoping to have Firebase v9. Depending on the command that I run, I somehow have versions 8 and 11. If I have these two versions, which one is actually being used? What is the difference between seemingly having an npm firebase and non-npm firebase installed?
armadillo#armadillo-MacBook-Air my-app % npm firebase --version
8.11.0
armadillo#armadillo-MacBook-Air my-app % firebase -V
11.2.2
If you're trying to work with the Firebase CLI, you should be looking at the firebase-tools npm package, not firebase. They are definitely not the same thing.
npm firebase-tools --version
I suggest reviewing the documentation as well.
As covered by #Doug's answer, the firebase command is defined by the firebase-tools npm package (or by https://firebase.tools if installed that way) not the firebase package, which does not define any command line utilities.
Additionally, npm --version returns the version of npm you have installed. This includes if you add the name of a package there. (i.e. npm thisCouldBeAnythingNotANPMCommand --version will return the same result)
If you want to view the version of a deployed package, you would use one of the following commands to query NPM's database:
npm view firebase version (view package's "version" field)
npm v firebase version (view package's "version" field, using shorthand)
npm view firebase (get all available package information)
If you want to view the version of a package installed in your project or globally, you would use:
npm ls firebase (local install)
npm ls -g firebase-tools (global install)
If you want to view the where the npm-installed commands are, you would use:
npm bin (local install)
npm bin -g (global install)
For the firebase command, the firebase/firebase.cmd/firebase.ps1 files all point to <global bin directory>/node_modules/firebase-tools/lib/bin/firebase.js.
Compare the results of:
> npm v firebase version
9.9.0
> npm ls firebase
`-- firebase#9.0.0-beta.6 (an old project directory for another SO answer)
> npm v firebase-tools version
11.2.2
> npm ls -g firebase-tools
`-- firebase-tools#9.21.0 (updated since :D)
> npm --version
6.4.12
> npm firebase --version
6.4.12
> npm v npm version
8.14.0 (updated since :D)

firebase functions:secrets:set is not a Firebase command

I am using cloud functions and would like to use Secret Manager to protect api keys for some services. Following the official documentation here , I tried using the command:
firebase functions:secrets:set STRIPE_TEST
but I received the following error:
Error: functions:secrets:set is not a Firebase command. Did you mean functions:config:set?
I want use secrets, not config that is not recommended
I was having the same problem on firebase-tools version 10.1.2. There's currently a newer version 11.1.0 available but I was having trouble upgrading or even uninstalling:
$ firebase --version
10.1.2
$ npm i -g firebase-tools
npm WARN config global `--global`, `--local` are deprecated. Use `--location=global` instead.
...
$ firebase --version
10.1.2
$ npm uninstall --location=global firebase-tools
up to date, audited 1 package in 52ms
$ firebase --version
10.1.2
I figured out I could successfully uninstall firebase-tools with curl -sL firebase.tools | uninstall=true bash then I reinstalled it with npm i --location=global firebase-tools
That finally upgraded firebase --version to 11.1.0 which fixed firebase functions:secrets:set SECRET_NAME for me.

Unable to install Firebase

I am unable to install firebase tool.
> C:\Users\Mohit Saini>npm i -g firebase-tools
> npm WARN deprecated request#2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
> npm ERR! Unexpected end of JSON input while parsing near '...ePY2w==","shasum":"89'
firstly run npm cache clean --force to clear previous caches
after that run npm cache verify which will bring 0 bytes indicating all cache was cleared.
lastly run npm install -g firebase-tools
note: running the clean --force command will deletes all data from your cache folder.
When I search for the error message, this Github issue shows up: https://github.com/firebase/firebase-tools/issues/2215, which seems to indicate the problem can be fixed by running:
npm cache verify
If you get problems installing the CLI, and are not familiar enough with the environment to fix them, I'd recommend installing the standalone binary version of the Firebase CLI instead.

Cannot upgrade or remove firebase from system

I cannot, as the title suggests, upgrade or in any way remove the current version of firebase off my system and I don't understand why. I installed it using the firebase commands prompted when you first start a project, something in line with npm install -g firebase-tools. After I've installed other packages to go along with it and I've upgraded the packages accordingly.
Now I want to remove the package I just do not understand how to do it. I've run
npm uninstall -g firebase-tools
npm uninstall -g firebase-admin
npm uninstall -g firebase-functions
npm uninstall -g firebase*
...and many other variations. After a while of trying I just figured I'll check what packages may still be left.
npm ls | grep firebase
Shows no firebase packages are still installed, however, running any firebase command will still work perfectly. Running firebase --version I get 3.15.4. I've also, just as a Hail Mary, tried running apt remove --purge firebase*
Further digging I figured that maybe the npm ls command was off, so I tried reinstalling all firebase packages. I ran it again and there they were, however* firebase was now at version 4.12.1. Running firebase --version still produce 3.15.4.
I'm really lost at this point. All help articles relating to uninstalling firebase leads to either how to delete projects or databases or to npm's how to uninstall a package website.
Sincerely.
You can't delete it, because you need to remove entire folder. This worked for me when I ran into the same problem:
which firebase
This locates the folder where firebase is (in Mac case it's /usr/local/bin/firebase) and then you do:
rm /usr/local/bin/firebase
Now do firebase -V and you'll get Command firebase not found. And now you can install back firebase with the real latest actual version:
npm i -g firebase-tools#latest
However, if you run firebase it will still give you Command firebase not found for what you can do this:
alias firebase="`npm config get prefix`/bin/firebase"
Worked for me with almost exactly the same problem.
Hope this helps you too!

firebase version is not updating through <npm install -g firebase-tools>

i am windows user and trying to update firebase version using
npm install -g firebase-tools but when i run firebase --version
it shows the same version.
I also run npm uninstall firebase --save and check firebase --version it shows same.
what should i do to update my firebase version?
npm update -g firebase-tools
or
npm install -g firebase-tools#3.12.0 to install a specific version
And make sure to restart your terminal/IDE otherwise, it won't take effect.
Have you tried npm update -g firebase-tools? This worked for me.
These days if you're on an older version, and you check the version of firebase-tools, by running:
firebase -V
along with the version of firebase-tools that you're on, it also gives you a messages, something like this:
So you can basically run npm i -g firebase-tools to update the version of your firebase-tools installation to the latest version.
Hope this helps :)
For other like me stumbling in with a weird version mismatch:
When I did firebase -V in my terminal I would get a different version (5.1.1) than when I ran firebase through a npm run script (3.19.3)
The problem was that I had previously installed firebase locally into that project. In other words, I was getting the global version in the terminal, but npm was using the node_modules version
To confirm this, I added a simple test called test-foo to my package.json (firebase -V && which firebase) and ran it:
kuzyn(λ)matebox‡ npm run test-foo
kuzyn-project#1.1.0 test-foo /home/kuzyn/code/kuzyn-project/firebase
firebase -V && which firebase
3.19.3
/home/kuzyn/code/kuzyn-project/firebase/node_modules/.bin/firebase
Then I removed the (uneeded in my case) local firebase package from the package.json and from node_modules
Try the 2 steps bellow
1. yarn/npm cache clean
2. npm install -g firebase firebase-tools or yarn add -g firebase firebase-tools
in a new terminal, firebse --version
works for me
it works to me...
standalone binary: Download the new version, then replace it on your system
if you are using the standalone.Download the new version
In my case I was using an old node version (v10) and had to switch to a newer one (v12). After that I ran npm install -g firebase-tools again and it was updated to the latest version.
You can check the current node version by running node -v. And I use nvm to switch to a different node version.
That might happen in case you've installed the firebase-cli using a so called automatic install script.
Try to call curl -sL https://firebase.tools | upgrade=true bash as described in the official documentation

Resources