mrkeyoor.com_
Sun 25 Oct 11:18 UTC
Dev Toolsevaluationupdated 25 Oct 2026

firebase-tools review

Firebase CLI is the command-line tool for managing Firebase projects, deploying their code and running local service emulators. The firebase-tools repository also contains the official Firebase MCP server, which connects compatible AI tools to Firebase workflows.

Verdict

Our Firebase CLI run reported 5,871 passing tests in 226 seconds and 48 known dependency vulnerabilities, including 3 critical. Use it for an existing Firebase project, with the target project and CI identity treated as part of every deployment change. The successful source run supports trying the tooling, while account permissions and your actual deployment still need validation.

We ran it

Lab card: what happened when we ran firebase-toolsScreenshot of firebase-tools (github.com/firebase/firebase-tools)
Install✓ · 89s1613 packages · 1333 MB
Build✓ · 32s
Tests✓ · 226s5871 passed · 0 failed of 5871 (mocha)
Known vulns483 critical · 30 high · 12 moderate · 3 low (npm audit)
Repo2045 files~315,805 lines of source · 17.3 MB · 3 CI workflows

Answers from our run

Does firebase-tools build from source?

Dependencies installed in 89 seconds (1613 packages), and the build succeeded in 32 seconds. We cloned commit 926b3fe into a clean Debian container with 3 CPUs and no project-specific setup.

Do firebase-tools's tests pass?

Yes. The project's own test command finished in 226 seconds and reported 5871 passed, 0 failed (mocha).

Does firebase-tools have known vulnerabilities in its dependencies?

npm audit flagged 48 known advisories in the dependency tree, including 3 critical at the time of our run.

Who should not use firebase-tools?

Teams seeking a backend they can host independently of Firebase: this CLI manages Firebase projects, while Appwrite documents a self-hosted platform.

What are the alternatives to firebase-tools?

Supabase CLI, Appwrite. Our Firebase CLI run reported 5,871 passing tests in 226 seconds and 48 known dependency vulnerabilities, including 3 critical.

SetupN/ANot assessed: source setup and checks succeeded, but supported CLI use with an authorized project and deployment were not reproduced.
DocsN/ANot assessed numerically: command, authentication and emulator guidance were read, but the documented cloud workflows were not followed.
CommunityN/ANot assessed numerically: recent pushes and a relevant issue were inspected, but maintainer response quality and support outcomes were not evaluated.
MaturityN/ANot assessed numerically: the recorded suite passed, while deployment permissions, emulator fidelity and advisory reachability were not exercised.

Who it’s for

Developers already using Firebase Hosting, databases or Functions who want project operations in their terminal and CI jobs.
Teams that can manage Firebase account access and explicit project selection alongside application configuration.
Developers evaluating local Firebase emulators or the official MCP server, with separate checks for the services they intend to use.

Who it’s NOT for

Teams seeking a backend they can host independently of Firebase: this CLI manages Firebase projects, while Appwrite documents a self-hosted platform.
CI systems built around long-lived Firebase user tokens: the README marks that authentication method deprecated and recommends service-account authorization instead.
Developers embedding the whole CLI inside a restricted function runtime: the README says some commands need local filesystem access and will not work in limited environments.
Teams expecting a clean dependency audit: our run recorded 48 known vulnerabilities, including 3 critical and 30 high.
Operators of restricted Hosting deployment accounts who cannot validate an upgrade: open issue 11335 reports a serviceusage.services.get denial with v15.34.1.

Setup reality

Our sandbox installed commit 926b3fe in 89 seconds on October 24, 2026, recording 1,613 dependencies and 1,333 MB on disk. Build succeeded in 32 seconds. Tests succeeded in 226 seconds, with Mocha reporting 5,871 passed and 0 failed. Npm audit reported 48 known vulnerabilities: 3 critical, 30 high, 12 moderate and 3 low.

The README offers npm and standalone distribution routes. Useful cloud operations require a Firebase project, authorized account or service identity, and the relevant local project configuration. Project-specific commands need an active project alias or an explicit project ID. The documented user-token authentication route is deprecated.

The configured sandbox had 3 CPUs, 8 GB of RAM and image label lab-node:22, which does not verify actual runtime or operating-system versions. The source run did not establish successful cloud deployment, emulator fidelity or MCP behavior. Some programmatic commands need filesystem access, and Functions emulator processes have their own credential discovery.

Project selection belongs in the deployment decision

Firebase CLI can deploy code and assets, change database data and manage Firebase services. Its README requires an active project alias or an explicit project ID for project-specific commands. That targeting rule deserves attention before you automate anything: a working command is useful only when it acts on the project you intended.

For a team already using Firebase, this repository is the practical place to start. The README documents Hosting operations, Auth account import and export, database commands and local emulators. It also identifies the repository as home to the official Firebase MCP server. The adoption question is how to operate your existing Firebase project with an accountable identity and configuration. Choosing a different backend is a larger decision.

What happened when we ran it

Our sandbox installed commit 926b3fe in 89 seconds on October 24, 2026, recording 1,613 dependencies and 1,333 MB on disk. Build succeeded in 32 seconds. Tests succeeded in 226 seconds, with Mocha reporting 5,871 passed and 0 failed. Those results give a concrete account of working on this source checkout, without proving that a cloud deployment would succeed.

Npm audit reported 48 known vulnerabilities: 3 critical, 30 high, 12 moderate and 3 low. Treat that as a dated dependency result requiring review. The supplied measurement does not identify which application paths reach the affected packages or whether a later dependency resolution removes the findings. Passing tests do not resolve those questions.

The checkout occupied 17.3 MB and contained 2,045 files with roughly 315,805 lines of source. Its installed dependencies used much more disk than the source itself, which matters for disposable development environments. The scan recorded 3 CI workflow files, no Dockerfile and no tests directory. That directory result plainly does not mean there were no executable tests: the recorded Mocha command passed.

The configuration specified 3 CPUs, 8 GB of RAM and image label lab-node:22. We cannot derive the actual runtime or operating system from that label. The measured work covered repository setup and checks. It did not establish an authenticated deployment, validate emulator behavior against production or exercise the MCP server through an AI client.

Authentication has an order, and user tokens are deprecated

The README lists authentication methods in descending priority: user token, local login, service account and Application Default Credentials. It marks the long-lived user-token method deprecated and recommends service-account authorization instead. Existing CI jobs should account for that documented direction before copying a familiar login-token recipe into another project.

For interactive work, the CLI can retain an authorized local account and supports multiple accounts. For automation, establish which identity the process will use and what it can change in the selected project. A developer's successful local login does not establish that a CI service account has equivalent permissions. Our sandbox result cannot answer that account-specific question either.

Functions emulation adds a separate credential detail. The README explains that emulated functions run as independent Node processes with their own discovery mechanism. It describes passing temporary credentials derived from a CLI login when the credentials-path environment variable is not already set. If local behavior surprises you, inspect the intended credential source before assuming the deployed function will behave the same way.

A Hosting upgrade has a reported permission failure

Release v15.34.1, published October 22, 2026, says Hosting commands now ensure the Firebase Hosting API is enabled. Open issue 11335 reports a Hosting preview-channel deployment receiving HTTP 403 with a serviceusage.services.get permission denial on that version. The reporter says the same service account worked with v15.34.0.

This is an upstream user report, not a failure from our lab. The reporter connects it to the API-enablement change, but the report alone does not establish a general cause for every deployment error. It does identify a useful upgrade check for restricted service accounts: run the intended Hosting workflow against a non-production project with the identity that CI will actually use.

GitHub records the repository's last push on October 24, 2026, and the Hosting report had activity on October 25. Together with the recent release, those dates show ongoing work and current operational feedback. They do not establish a maintainer response time or guarantee that this particular issue is resolved.

Supabase CLI and Appwrite mean choosing another backend

Supabase CLI documents a local stack including Postgres, Auth and Storage, alongside database migrations and Edge Function deployment. Choose it when Supabase is the platform you want to develop against. It cannot stand in for Firebase CLI while preserving an existing Firebase project's deployment workflow.

Appwrite is available as a managed platform and can also be self-hosted. Consider it when operating your own backend is part of the requirement. Adopting it entails evaluating a different platform, rather than swapping terminal commands. We did not run either alternative or measure migration effort.

For an existing Firebase team, begin with a non-production project and the same account boundary your automation will use. Confirm the target explicitly, run the operation you intend to automate and check its result in that project. Keep the version and configuration beside that evidence so the next CLI upgrade has a concrete workflow to repeat.

Alternatives

ProjectWhat it isPick it when
Supabase CLIA terminal tool for the Supabase local stack, database migrations and Edge Functions.pick this instead when you are choosing Supabase as your backend and want its local Postgres-centered workflow. It does not deploy an existing Firebase project.
Appwrite gh↗An application backend platform available as a managed service or a self-hosted deployment.pick this instead when controlling the backend infrastructure is a requirement and you can adopt a different platform. It is a backend decision, not a replacement Firebase executable.

What people are saying

  1. [github-trending] firebase/firebase-tools

Sources

  1. Firebase CLI README
  2. Hosting permission report 11335
  3. Supabase CLI README
  4. Appwrite README
  5. v15.34.1 release notes
  6. Repository metadata

More dev tools reviews

brotli · agentskills · hallmark · ds-harness-remote · PCL · rpcs3 · the whole board →