{"id":13479537,"url":"https://github.com/firebase/firebase-tools","last_synced_at":"2026-04-09T20:15:56.049Z","repository":{"id":12729419,"uuid":"15402300","full_name":"firebase/firebase-tools","owner":"firebase","description":"The Firebase Command Line Tools","archived":false,"fork":false,"pushed_at":"2026-02-06T07:28:41.000Z","size":73205,"stargazers_count":4332,"open_issues_count":861,"forks_count":1141,"subscribers_count":206,"default_branch":"main","last_synced_at":"2026-02-06T09:43:52.515Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/firebase.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2013-12-23T18:53:04.000Z","updated_at":"2026-02-05T23:38:41.000Z","dependencies_parsed_at":"2023-01-16T21:00:10.212Z","dependency_job_id":null,"html_url":"https://github.com/firebase/firebase-tools","commit_stats":{"total_commits":4772,"total_committers":328,"mean_commits":"14.548780487804878","dds":0.884953897736798,"last_synced_commit":"6153607dc2cde1ce9c681342b8f75b8c0801123b"},"previous_names":[],"tags_count":470,"template":false,"template_full_name":null,"purl":"pkg:github/firebase/firebase-tools","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/firebase%2Ffirebase-tools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/firebase%2Ffirebase-tools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/firebase%2Ffirebase-tools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/firebase%2Ffirebase-tools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/firebase","download_url":"https://codeload.github.com/firebase/firebase-tools/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/firebase%2Ffirebase-tools/sbom","scorecard":{"id":122235,"data":{"date":"2025-08-11","repo":{"name":"github.com/firebase/firebase-tools","commit":"ecbbc91ea0d65269feabdb2d4037a985ec89de46"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":6.4,"checks":[{"name":"Code-Review","score":8,"reason":"Found 25/29 approved changesets -- score normalized to 8","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":10,"reason":"30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Token-Permissions","score":10,"reason":"GitHub workflow tokens follow principle of least privilege","details":["Info: topLevel 'contents' permission set to 'read': .github/workflows/functions.yaml:13","Info: topLevel 'contents' permission set to 'read': .github/workflows/node-test.yml:13","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: github.com/firebase/.github/SECURITY.md:1","Info: Found linked content: github.com/firebase/.github/SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: github.com/firebase/.github/SECURITY.md:1","Info: Found text in security policy: github.com/firebase/.github/SECURITY.md:1"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v14.12.0 not signed: https://api.github.com/repos/firebase/firebase-tools/releases/238128662","Warn: release artifact v14.11.2 not signed: https://api.github.com/repos/firebase/firebase-tools/releases/236425621","Warn: release artifact v14.11.1 not signed: https://api.github.com/repos/firebase/firebase-tools/releases/234389864","Warn: release artifact v14.11.0 not signed: https://api.github.com/repos/firebase/firebase-tools/releases/233026618","Warn: release artifact v14.10.1 not signed: https://api.github.com/repos/firebase/firebase-tools/releases/231584771","Warn: release artifact v14.12.0 does not have provenance: https://api.github.com/repos/firebase/firebase-tools/releases/238128662","Warn: release artifact v14.11.2 does not have provenance: https://api.github.com/repos/firebase/firebase-tools/releases/236425621","Warn: release artifact v14.11.1 does not have provenance: https://api.github.com/repos/firebase/firebase-tools/releases/234389864","Warn: release artifact v14.11.0 does not have provenance: https://api.github.com/repos/firebase/firebase-tools/releases/233026618","Warn: release artifact v14.10.1 does not have provenance: https://api.github.com/repos/firebase/firebase-tools/releases/231584771"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":1,"reason":"dependency not pinned by hash detected -- score normalized to 1","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/functions.yaml:26: update your workflow using https://app.stepsecurity.io/secureworkflow/firebase/firebase-tools/functions.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/functions.yaml:27: update your workflow using https://app.stepsecurity.io/secureworkflow/firebase/firebase-tools/functions.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/functions.yaml:31: update your workflow using https://app.stepsecurity.io/secureworkflow/firebase/firebase-tools/functions.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/node-test.yml:326: update your workflow using https://app.stepsecurity.io/secureworkflow/firebase/firebase-tools/node-test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/node-test.yml:328: update your workflow using https://app.stepsecurity.io/secureworkflow/firebase/firebase-tools/node-test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/node-test.yml:29: update your workflow using https://app.stepsecurity.io/secureworkflow/firebase/firebase-tools/node-test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/node-test.yml:32: update your workflow using https://app.stepsecurity.io/secureworkflow/firebase/firebase-tools/node-test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/node-test.yml:52: update your workflow using https://app.stepsecurity.io/secureworkflow/firebase/firebase-tools/node-test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/node-test.yml:53: update your workflow using https://app.stepsecurity.io/secureworkflow/firebase/firebase-tools/node-test.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/node-test.yml:67: update your workflow using https://app.stepsecurity.io/secureworkflow/firebase/firebase-tools/node-test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/node-test.yml:136: update your workflow using https://app.stepsecurity.io/secureworkflow/firebase/firebase-tools/node-test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/node-test.yml:137: update your workflow using https://app.stepsecurity.io/secureworkflow/firebase/firebase-tools/node-test.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/node-test.yml:147: update your workflow using https://app.stepsecurity.io/secureworkflow/firebase/firebase-tools/node-test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/node-test.yml:185: update your workflow using https://app.stepsecurity.io/secureworkflow/firebase/firebase-tools/node-test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/node-test.yml:186: update your workflow using https://app.stepsecurity.io/secureworkflow/firebase/firebase-tools/node-test.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/node-test.yml:192: update your workflow using https://app.stepsecurity.io/secureworkflow/firebase/firebase-tools/node-test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/node-test.yml:197: update your workflow using https://app.stepsecurity.io/secureworkflow/firebase/firebase-tools/node-test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/node-test.yml:248: update your workflow using https://app.stepsecurity.io/secureworkflow/firebase/firebase-tools/node-test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/node-test.yml:253: update your workflow using https://app.stepsecurity.io/secureworkflow/firebase/firebase-tools/node-test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/node-test.yml:254: update your workflow using https://app.stepsecurity.io/secureworkflow/firebase/firebase-tools/node-test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/node-test.yml:261: update your workflow using https://app.stepsecurity.io/secureworkflow/firebase/firebase-tools/node-test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/node-test.yml:286: update your workflow using https://app.stepsecurity.io/secureworkflow/firebase/firebase-tools/node-test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/node-test.yml:288: update your workflow using https://app.stepsecurity.io/secureworkflow/firebase/firebase-tools/node-test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/node-test.yml:306: update your workflow using https://app.stepsecurity.io/secureworkflow/firebase/firebase-tools/node-test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/node-test.yml:308: update your workflow using https://app.stepsecurity.io/secureworkflow/firebase/firebase-tools/node-test.yml/master?enable=pin","Warn: containerImage not pinned by hash: scripts/build/Dockerfile:1: pin your Docker image by updating node:20 to node:20@sha256:572a90df10a58ebb7d3f223d661d964a6c2383a9c2b5763162b4f631c53dc56a","Warn: containerImage not pinned by hash: scripts/firepit-builder/Dockerfile:1: pin your Docker image by updating node:20 to node:20@sha256:572a90df10a58ebb7d3f223d661d964a6c2383a9c2b5763162b4f631c53dc56a","Warn: containerImage not pinned by hash: scripts/publish/firebase-docker-image/Dockerfile:1","Warn: npmCommand not pinned by hash: scripts/build/Dockerfile:14","Warn: npmCommand not pinned by hash: scripts/firepit-builder/Dockerfile:12","Warn: npmCommand not pinned by hash: scripts/firepit-builder/Dockerfile:22","Warn: npmCommand not pinned by hash: scripts/publish/firebase-docker-image/Dockerfile:14","Warn: npmCommand not pinned by hash: scripts/clean-install.sh:21","Warn: npmCommand not pinned by hash: scripts/extensions-emulator-tests/run.sh:8","Warn: npmCommand not pinned by hash: scripts/functions-deploy-tests/run.sh:10","Warn: npmCommand not pinned by hash: scripts/functions-discover-tests/fixtures/bundled/install.sh:5","Warn: npmCommand not pinned by hash: scripts/functions-discover-tests/fixtures/codebases/install.sh:5","Warn: npmCommand not pinned by hash: scripts/functions-discover-tests/fixtures/codebases/install.sh:6","Warn: npmCommand not pinned by hash: scripts/functions-discover-tests/fixtures/esm/install.sh:5","Warn: npmCommand not pinned by hash: scripts/functions-discover-tests/fixtures/simple/install.sh:5","Warn: npmCommand not pinned by hash: scripts/functions-discover-tests/fixtures/stress-test/install.sh:5","Warn: npmCommand not pinned by hash: scripts/functions-discover-tests/run.sh:12","Warn: npmCommand not pinned by hash: scripts/functions-discover-tests/run.sh:15","Warn: npmCommand not pinned by hash: scripts/publish.sh:74","Warn: npmCommand not pinned by hash: scripts/publish.sh:99","Warn: npmCommand not pinned by hash: scripts/publish/firebase-docker-image/run.sh:3","Warn: npmCommand not pinned by hash: scripts/triggers-end-to-end-tests/run.sh:27","Warn: npmCommand not pinned by hash: .github/workflows/node-test.yml:292","Warn: npmCommand not pinned by hash: .github/workflows/node-test.yml:294","Warn: npmCommand not pinned by hash: .github/workflows/node-test.yml:312","Warn: npmCommand not pinned by hash: .github/workflows/node-test.yml:314","Warn: npmCommand not pinned by hash: .github/workflows/node-test.yml:334","Warn: npmCommand not pinned by hash: .github/workflows/node-test.yml:39","Warn: npmCommand not pinned by hash: .github/workflows/node-test.yml:60","Warn: npmCommand not pinned by hash: .github/workflows/node-test.yml:62","Warn: npmCommand not pinned by hash: .github/workflows/node-test.yml:144","Warn: npmCommand not pinned by hash: .github/workflows/node-test.yml:204","Info:   0 out of  21 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   4 third-party GitHubAction dependencies pinned","Info:   9 out of  38 npmCommand dependencies pinned","Info:   0 out of   3 containerImage dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"SAST","score":9,"reason":"SAST tool is not run on all commits -- score normalized to 9","details":["Warn: 26 commits out of 28 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":0,"reason":"64 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-v6h2-p8h4-qcjw","Warn: Project is vulnerable to: GHSA-3xgq-45jj-v275","Warn: Project is vulnerable to: GHSA-67mh-4wv8-2f99","Warn: Project is vulnerable to: GHSA-fjxv-7rqg-78g4","Warn: Project is vulnerable to: GHSA-pq67-2wwv-3xjx","Warn: Project is vulnerable to: GHSA-8cj5-5rvv-wf4v","Warn: Project is vulnerable to: GHSA-52f5-9888-hmc6","Warn: Project is vulnerable to: GHSA-c76h-2ccp-4975","Warn: Project is vulnerable to: GHSA-cxrh-j4jr-qwg3","Warn: Project is vulnerable to: GHSA-3h5v-q93c-6h6q","Warn: Project is vulnerable to: GHSA-qwcr-r2fm-qrc7","Warn: Project is vulnerable to: GHSA-pxg6-pf52-xh8x","Warn: Project is vulnerable to: GHSA-rv95-896h-c2vc","Warn: Project is vulnerable to: GHSA-qw6h-vgh9-j6wx","Warn: Project is vulnerable to: GHSA-hhhv-q57g-882q","Warn: Project is vulnerable to: GHSA-9wv6-86v2-598j","Warn: Project is vulnerable to: GHSA-rhx6-c78j-4q9w","Warn: Project is vulnerable to: GHSA-h755-8qp9-cq85","Warn: Project is vulnerable to: GHSA-m6fv-jmcg-4jfg","Warn: Project is vulnerable to: GHSA-cm22-4g7w-348p","Warn: Project is vulnerable to: GHSA-76c9-3jph-rj3q","Warn: Project is vulnerable to: GHSA-7v5v-9h63-cj86","Warn: Project is vulnerable to: GHSA-3wf4-68gx-mph8","Warn: Project is vulnerable to: GHSA-968p-4wvh-cqc8","Warn: Project is vulnerable to: GHSA-wf5p-g6vw-rhxx","Warn: Project is vulnerable to: GHSA-jr5f-v2jv-69x6","Warn: Project is vulnerable to: GHSA-grv7-fg5c-xmjg","Warn: Project is vulnerable to: GHSA-r7jx-5m6m-cpg9","Warn: Project is vulnerable to: GHSA-cxjh-pqwp-8mfp","Warn: Project is vulnerable to: GHSA-c7qv-q95q-8v27","Warn: Project is vulnerable to: GHSA-4www-5p9h-95mh","Warn: Project is vulnerable to: GHSA-9gqv-wp59-fq42","Warn: Project is vulnerable to: GHSA-78xj-cgh5-2h22","Warn: Project is vulnerable to: GHSA-2p57-rm9w-gvfp","Warn: Project is vulnerable to: GHSA-952p-6rrq-rcjv","Warn: Project is vulnerable to: GHSA-mwcw-c2x4-8c55","Warn: Project is vulnerable to: GHSA-gcx4-mw62-g8wm","Warn: Project is vulnerable to: GHSA-76p7-773f-r4q5","Warn: Project is vulnerable to: GHSA-f5x3-32g6-xq36","Warn: Project is vulnerable to: GHSA-3787-6prv-h9w3","Warn: Project is vulnerable to: GHSA-9qxr-qj54-h672","Warn: Project is vulnerable to: GHSA-m4v8-wqvr-p9f7","Warn: Project is vulnerable to: GHSA-92r3-m2mg-pj97","Warn: Project is vulnerable to: GHSA-c24v-8rfc-w8vw","Warn: Project is vulnerable to: GHSA-8jhw-289h-jh2g","Warn: Project is vulnerable to: GHSA-64vr-g452-qvp3","Warn: Project is vulnerable to: GHSA-9cwx-2883-4wfx","Warn: Project is vulnerable to: GHSA-vg6x-rcgg-rjx6","Warn: Project is vulnerable to: GHSA-x574-m823-4x7w","Warn: Project is vulnerable to: GHSA-4r4m-qw57-chr8","Warn: Project is vulnerable to: GHSA-xcj6-pq6g-qj4x","Warn: Project is vulnerable to: GHSA-356w-63v5-8wf4","Warn: Project is vulnerable to: GHSA-859w-5945-r5v3","Warn: Project is vulnerable to: GHSA-4vvj-4cpr-p986","Warn: Project is vulnerable to: GHSA-wr3j-pwj9-hqq6","Warn: Project is vulnerable to: GHSA-4v9v-hfq4-rm2v","Warn: Project is vulnerable to: GHSA-9jgg-88mc-972h","Warn: Project is vulnerable to: GHSA-7q7g-4xm8-89cq","Warn: Project is vulnerable to: GHSA-xffm-g5w8-qvg7","Warn: Project is vulnerable to: GHSA-7m27-7ghc-44w9","Warn: Project is vulnerable to: GHSA-qpjv-v59x-3qc4","Warn: Project is vulnerable to: GHSA-3h52-269p-cp9r","Warn: Project is vulnerable to: GHSA-f82v-jwr5-mffw","Warn: Project is vulnerable to: GHSA-c2qf-rxjj-qqgw"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-16T02:42:50.668Z","repository_id":12729419,"created_at":"2025-08-16T02:42:50.668Z","updated_at":"2025-08-16T02:42:50.668Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29379667,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-12T19:05:20.189Z","status":"ssl_error","status_checked_at":"2026-02-12T19:01:44.216Z","response_time":55,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-31T16:02:18.680Z","updated_at":"2026-02-12T20:01:43.047Z","avatar_url":"https://github.com/firebase.png","language":"TypeScript","readme":"# Firebase CLI and MCP Server [![Actions Status][gh-actions-badge]][gh-actions] [![Node Version][node-badge]][npm] [![NPM version][npm-badge]][npm] [![Install MCP Server](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/en/install-mcp?name=firebase\u0026config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsImZpcmViYXNlLXRvb2xzIiwibWNwIiwiLS1kaXIiLCIuIl19)\n\nThe Firebase Command Line Interface (CLI) Tools can be used to test, manage, and deploy your Firebase project from the command line. This repository is also the home of the official Firebase MCP Server. For more information, please see the [Firebase MCP Server documentation](./src/mcp).\n\n- Deploy code and assets to your Firebase projects\n- Run a local web server for your Firebase Hosting site\n- Interact with data in your Firebase database\n- Import/Export users into/from Firebase Auth\n\nTo get started with the Firebase CLI, read the full list of commands below or check out the [documentation](https://firebase.google.com/docs/cli).\n\n## Installation\n\n### Node Package\n\nYou can install the Firebase CLI using npm (the Node Package Manager). Note that you will need to install\n[Node.js](http://nodejs.org/) and [npm](https://npmjs.org/). Installing Node.js should install npm as well.\n\nTo download and install the Firebase CLI run the following command:\n\n```bash\nnpm install -g firebase-tools\n```\n\nThis will provide you with the globally accessible `firebase` command.\n\n### Standalone Binary\n\nThe standalone binary distribution of the Firebase CLI allows you to download a `firebase` executable\nwithout any dependencies.\n\nTo download and install the CLI run the following command:\n\n```bash\ncurl -sL firebase.tools | bash\n```\n\n## Commands\n\n**The command `firebase --help` lists the available commands and `firebase \u003ccommand\u003e --help` shows more details for an individual command.**\n\nIf a command is project-specific, you must either be inside a project directory with an\nactive project alias or specify the Firebase project id with the `-P \u003cproject_id\u003e` flag.\n\nBelow is a brief list of the available commands and their function:\n\n### Configuration Commands\n\n| Command        | Description                                                                                                                                     |\n| -------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |\n| **login**      | Authenticate to your Firebase account. Requires access to a web browser.                                                                        |\n| **logout**     | Sign out of the Firebase CLI.                                                                                                                   |\n| **login:ci**   | Generate an authentication token for use in non-interactive environments.                                                                       |\n| **login:add**  | Authorize the CLI for an additional account.                                                                                                    |\n| **login:list** | List authorized CLI accounts.                                                                                                                   |\n| **login:use**  | Set the default account to use for this project                                                                                                 |\n| **use**        | Set active Firebase project, manage project aliases.                                                                                            |\n| **open**       | Quickly open a browser to relevant project resources.                                                                                           |\n| **init**       | Setup a new Firebase project in the current directory. This command will create a `firebase.json` configuration file in your current directory. |\n| **help**       | Display help information about the CLI or specific commands.                                                                                    |\n\nAppend `--no-localhost` to login (i.e., `firebase login --no-localhost`) to copy and paste code instead of starting a local server for authentication. A use case might be if you SSH into an instance somewhere and you need to authenticate to Firebase on that machine.\n\n### Project Management Commands\n\n| Command                  | Description                                                |\n| ------------------------ | ---------------------------------------------------------- |\n| **apps:create**          | Create a new Firebase app in a project.                    |\n| **apps:list**            | List the registered apps of a Firebase project.            |\n| **apps:sdkconfig**       | Print the configuration of a Firebase app.                 |\n| **projects:addfirebase** | Add Firebase resources to a Google Cloud Platform project. |\n| **projects:create**      | Create a new Firebase project.                             |\n| **projects:list**        | Print a list of all of your Firebase projects.             |\n\n### Deployment and Local Emulation\n\nThese commands let you deploy and interact with your Firebase services.\n\n| Command                       | Description                                                                                                                   |\n| ----------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |\n| **emulators:exec**            | Start the local Firebase emulators, run a test script, then shut down the emulators.                                          |\n| **emulators:start**           | Start the local Firebase emulators.                                                                                           |\n| **deploy**                    | Deploys your Firebase project. Relies on `firebase.json` configuration and your local project folder.                         |\n| **serve**                     | Start a local server with your Firebase Hosting configuration and HTTPS-triggered Cloud Functions. Relies on `firebase.json`. |\n| **setup:emulators:database**  | Downloads the database emulator.                                                                                              |\n| **setup:emulators:firestore** | Downloads the firestore emulator.                                                                                             |\n\n### App Distribution Commands\n\n| Command                              | Description                                                                              |\n| ------------------------------------ | ---------------------------------------------------------------------------------------- |\n| **appdistribution:distribute**       | Upload a release binary and optionally distribute it to testers and run automated tests. |\n| **appdistribution:testers:list**     | List testers in project.                                                                 |\n| **appdistribution:testers:add**      | Add testers to project (and group, if specified via flag).                               |\n| **appdistribution:testers:remove**   | Remove testers from a project (or group, if specified via flag).                         |\n| **appdistribution:groups:list**      | List groups (of testers).                                                                |\n| **appdistribution:groups:create**    | Create a group (of testers).                                                             |\n| **appdistribution:groups:delete**    | Delete a group (of testers).                                                             |\n| **appdistribution:testcases:export** | Export test cases as a YAML file.                                                        |\n| **appdistribution:testcases:import** | Import test cases from YAML file.                                                        |\n\n### Auth Commands\n\n| Command         | Description                                            |\n| --------------- | ------------------------------------------------------ |\n| **auth:import** | Batch importing accounts into Firebase from data file. |\n| **auth:export** | Batch exporting accounts from Firebase into data file. |\n\nDetailed doc is [here](https://firebase.google.com/docs/cli/auth).\n\n### Realtime Database Commands\n\n| Command                       | Description                                                                                                                                 |\n| ----------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- |\n| **database:get**              | Fetch data from the current project's database and display it as JSON. Supports querying on indexed data.                                   |\n| **database:set**              | Replace all data at a specified location in the current project's database. Takes input from file, STDIN, or command-line argument.         |\n| **database:push**             | Push new data to a list at a specified location in the current project's database. Takes input from file, STDIN, or command-line argument.  |\n| **database:remove**           | Delete all data at a specified location in the current project's database.                                                                  |\n| **database:update**           | Perform a partial update at a specified location in the current project's database. Takes input from file, STDIN, or command-line argument. |\n| **database:profile**          | Profile database usage and generate a report.                                                                                               |\n| **database:instances:create** | Create a realtime database instance.                                                                                                        |\n| **database:instances:list**   | List realtime database instances.                                                                                                           |\n| **database:settings:get**     | Read the realtime database setting at path                                                                                                  |\n| **database:settings:set**     | Set the realtime database setting at path.                                                                                                  |\n\n### Extensions Commands\n\n| Command             | Description                                                                                 |\n| ------------------- | ------------------------------------------------------------------------------------------- |\n| **ext**             | Display information on how to use ext commands and extensions installed to your project.    |\n| **ext:configure**   | Configure an existing extension instance.                                                   |\n| **ext:info**        | Display information about an extension by name (extensionName@x.y.z for a specific version) |\n| **ext:install**     | Install an extension.                                                                       |\n| **ext:sdk:install** | Install and SDK for an extension so you can define the extension in a functions codebase.   |\n| **ext:list**        | List all the extensions that are installed in your Firebase project.                        |\n| **ext:uninstall**   | Uninstall an extension that is installed in your Firebase project by Instance ID.           |\n| **ext:update**      | Update an existing extension instance to the latest version.                                |\n\n### Cloud Firestore Commands\n\n| Command               | Description                                                                                                         |\n| --------------------- | ------------------------------------------------------------------------------------------------------------------- |\n| **firestore:delete**  | Delete documents or collections from the current project's database. Supports recursive deletion of subcollections. |\n| **firestore:indexes** | List all deployed indexes from the current project.                                                                 |\n\n### Cloud Functions Commands\n\n| Command                       | Description                                                                                                  |\n| ----------------------------- | ------------------------------------------------------------------------------------------------------------ |\n| **functions:log**             | Read logs from deployed Cloud Functions.                                                                     |\n| **functions:list**            | List all deployed functions in your Firebase project.                                                        |\n| **functions:config:set**      | Store runtime configuration values for the current project's Cloud Functions.                                |\n| **functions:config:get**      | Retrieve existing configuration values for the current project's Cloud Functions.                            |\n| **functions:config:unset**    | Remove values from the current project's runtime configuration.                                              |\n| **functions:config:clone**    | Copy runtime configuration from one project environment to another.                                          |\n| **functions:secrets:set**     | Create or update a secret for use in Cloud Functions for Firebase.                                           |\n| **functions:secrets:get**     | Get metadata for secret and its versions.                                                                    |\n| **functions:secrets:access**  | Access secret value given secret and its version. Defaults to accessing the latest version.                  |\n| **functions:secrets:prune**   | Destroys unused secrets.                                                                                     |\n| **functions:secrets:destroy** | Destroy a secret. Defaults to destroying the latest version.                                                 |\n| **functions:delete**          | Delete one or more Cloud Functions by name or group name.                                                    |\n| **functions:shell**           | Locally emulate functions and start Node.js shell where these local functions can be invoked with test data. |\n\n### Hosting Commands\n\n| Command             | Description                                                                                                                                                          |\n| ------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| **hosting:disable** | Stop serving Firebase Hosting traffic for the active project. A \"Site Not Found\" message will be displayed at your project's Hosting URL after running this command. |\n\n### Remote Config Commands\n\n| Command                             | Description                                                                                                |\n| ----------------------------------- | ---------------------------------------------------------------------------------------------------------- |\n| **remoteconfig:get**                | Get a Firebase project's Remote Config template.                                                           |\n| **remoteconfig:versions:list**      | Get a list of the most recent Firebase Remote Config template versions that have been published.           |\n| **remoteconfig:rollback**           | Roll back a project's published Remote Config template to the version provided by `--version_number` flag. |\n| **remoteconfig:experiments:get**    | Get a Remote Config experiment.                                                                            |\n| **remoteconfig:experiments:list**   | Get a list of Remote Config experiments                                                                    |\n| **remoteconfig:experiments:delete** | Delete a Remote Config experiment.                                                                         |\n| **remoteconfig:rollouts:get**       | Get a Remote Config rollout.                                                                               |\n| **remoteconfig:rollouts:list**      | Get a list of Remote Config rollouts.                                                                      |\n| **remoteconfig:rollouts:delete**    | Delete a Remote Config rollout.                                                                            |\n\nUse `firebase:deploy --only remoteconfig` to update and publish a project's Firebase Remote Config template.\n\n## Authentication\n\n### General\n\nThe Firebase CLI can use one of four authentication methods listed in descending priority:\n\n- **User Token** - **DEPRECATED: this authentication method will be removed in a future major version of `firebase-tools`; use a service account to authenticate instead** - provide an explicit long-lived Firebase user token generated from `firebase login:ci`. Note that these tokens are extremely sensitive long-lived credentials and are not the right option for most cases. Consider using service account authorization instead. The token can be set in one of two ways:\n  - Set the `--token` flag on any command, for example `firebase --token=\"\u003ctoken\u003e\" projects:list`.\n  - Set the `FIREBASE_TOKEN` environment variable.\n- **Local Login** - run `firebase login` to log in to the CLI directly as yourself. The CLI will cache an authorized user credential on your machine.\n- **Service Account** - set the `GOOGLE_APPLICATION_CREDENTIALS` environment variable to point to the path of a JSON service account key file. For more details, see Google Cloud's [Getting started with authentication](https://cloud.google.com/docs/authentication/getting-started) guide.\n- **Application Default Credentials** - if you use the `gcloud` CLI and log in with `gcloud auth application-default login`, the Firebase CLI will use them if none of the above credentials are present.\n\n### Multiple Accounts\n\nBy default `firebase login` sets a single global account for use on all projects.\nIf you have multiple Google accounts which you use for Firebase projects you can\nauthorize multiple accounts and use them on a per-project or per-command basis.\n\nTo authorize an additonal account for use with the CLI, run `firebase login:add`.\nYou can view the list of authorized accounts with `firebase login:list`.\n\nTo set the default account for a specific Firebase project directory, run\n`firebase login:use` from within the directory and select the desired account.\nTo check the default account for a directory, run `firebase login:list` and the\ndefault account for the current context will be listed first.\n\nTo set the account for a specific command invocation, use the `--account` flag\nwith any command. For example `firebase --account=user@domain.com deploy`. The\nspecified account must have already been added to the Firebase CLI using\n`firebase login:add`.\n\n### Cloud Functions Emulator\n\nThe Cloud Functions emulator is exposed through commands like `emulators:start`,\n`serve` and `functions:shell`. Emulated Cloud Functions run as independent `node` processes\non your development machine which means they have their own credential discovery mechanism.\n\nBy default these `node` processes are not able to discover credentials from `firebase login`.\nIn order to provide a better development experience, when you are logged in to the CLI\nthrough `firebase login` we take the user credentials and construct a temporary credential\nthat we pass into the emulator through `GOOGLE_APPLICATION_CREDENTIALS`. We **only** do this\nif you have not already set the `GOOGLE_APPLICATION_CREDENTIALS` environment variable\nyourself.\n\n## Using behind a proxy\n\nThe CLI supports HTTP(S) proxies via environment variables. To use a proxy, set the `HTTPS_PROXY`\nor `HTTP_PROXY` value in your environment to the URL of your proxy (e.g.\n`HTTP_PROXY=http://127.0.0.1:12345`).\n\n## Using with CI Systems\n\nThe Firebase CLI requires a browser to complete authentication, but is fully\ncompatible with CI and other headless environments.\n\nComplete the following steps to run Firebase commands in a CI environment. Find detailed instructions for each step in Google Cloud's [Getting started with authentication](https://cloud.google.com/docs/authentication/getting-started) guide.\n\n1. Create a service account and grant it the appropriate level of access to your project.\n1. Create a service account key (JSON file) for that service account.\n1. Store the key file in a secure, accessible way in your CI system.\n1. Set `GOOGLE_APPLICATION_CREDENTIALS=/path/to/key.json` in your CI system when running Firebase commands.\n\nTo disable access for the service account, [find the service account](https://console.cloud.google.com/projectselector/iam-admin/serviceaccounts) for your project in the Google Cloud Console, and then either remove the key, or disable or delete the service account.\n\n## Using as a Module\n\nThe Firebase CLI can also be used programmatically as a standard Node module.\nEach command is exposed as a function that takes positional arguments followed\nby an options object and returns a Promise.\n\nSo if we run this command at our command line:\n\n```bash\n$ firebase --project=\"foo\" apps:list ANDROID\n```\n\nThat translates to the following in Node:\n\n```js\nconst client = require(\"firebase-tools\");\nclient.apps\n  .list(\"ANDROID\", { project: \"foo\" })\n  .then((data) =\u003e {\n    // ...\n  })\n  .catch((err) =\u003e {\n    // ...\n  });\n```\n\nThe options object must be the very last argument and any unspecified\npositional argument will get the default value of `\"\"`. The following\ntwo invocations are equivalent:\n\n```js\nconst client = require(\"firebase-tools\");\n\n// #1 - No arguments or options, defaults will be inferred\nclient.apps.list();\n\n// #2 - Explicitly provide \"\" for all arguments and {} for options\nclient.apps.list(\"\", {});\n```\n\nNote: when used in a limited environment like Cloud Functions, not all `firebase-tools` commands will work programatically\nbecause they require access to a local filesystem.\n\n[gh-actions]: https://github.com/firebase/firebase-tools/actions\n[npm]: https://www.npmjs.com/package/firebase-tools\n[gh-actions-badge]: https://github.com/firebase/firebase-tools/workflows/CI%20Tests/badge.svg\n[node-badge]: https://img.shields.io/node/v/firebase-tools.svg\n[npm-badge]: https://img.shields.io/npm/v/firebase-tools.svg\n","funding_links":[],"categories":["TypeScript","精选推荐","CLI \u0026 에디터","Cloud and Infrastructure"],"sub_categories":["Firebase 必备工具和文档","iOS"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffirebase%2Ffirebase-tools","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffirebase%2Ffirebase-tools","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffirebase%2Ffirebase-tools/lists"}