mcpField
F
Firebase CLI

Firebase CLI

官方
firebase.google.com云与 DevOps4.5kfirebase今天更新
代码仓库访问官网

关于 Firebase CLI

Firebase CLI 提供了从终端管理 Firebase 项目的完整工具集。支持初始化项目、运行本地模拟器、部署 Hosting 和 Cloud Functions,以及管理 Firestore 和其他服务。

主要功能

  1. 01初始化 Firebase 项目并关联现有项目
  2. 02本地运行模拟器进行 Firestore、Functions 和其他服务的开发测试
  3. 03将应用部署到 Firebase Hosting 和 Cloud Functions
  4. 04查看部署日志和项目配置

适用场景

  1. 01设置和配置新的 Firebase 后端项目
  2. 02在本地开发和测试云函数与数据库逻辑
  3. 03自动化和部署 Hosting 更新和 serverless 函数

安装

选择你的系统或包管理器,复制命令到终端运行。

$
npm install -g firebase-tools

安装完成后运行firebase --version确认安装成功。

命令示例

常用命令按使用顺序排列。

01
firebase login
02
firebase init
03
firebase deploy

详细介绍

Firebase CLI 和 MCP 服务 Actions Status Node Version NPM version Install MCP Server

Firebase 命令行界面(CLI)工具可用于通过命令行测试、管理和部署 Firebase 项目。本仓库也是官方 Firebase MCP 服务的所在地。有关更多信息,请参阅 Firebase MCP 服务文档。

  • 将代码和资源部署到 Firebase 项目
  • 为 Firebase Hosting 网站运行本地 Web 服务器
  • 与 Firebase 数据库中的数据交互
  • 将用户导入 Firebase Auth 或从中导出用户

如需开始使用 Firebase CLI,请阅读下方的完整命令列表,或查看文档。

提示

正在使用 AI 助手?安装 Firebase Agent 技能,为其提供 Firebase 专属知识、最佳实践和工作流,包括如何有效使用 Firebase CLI 和 MCP 服务:

npx skills add firebase/agent-skills

如需了解更多信息,请参阅 Firebase Agent 技能文档。

安装

Node Package

你可以使用 npm(Node Package Manager,Node 包管理器)安装 Firebase CLI。请注意,你需要安装 Node.js 和 npm。安装 Node.js 时也应会一并安装 npm。

运行以下命令下载并安装 Firebase CLI:

npm install -g firebase-tools

这将提供可全局访问的 firebase 命令。

独立二进制文件

Firebase CLI 的独立二进制发行版允许你下载 firebase 可执行文件, 且无需任何依赖项。

运行以下命令下载并安装 CLI:

curl -sL firebase.tools | bash

命令

命令 firebase --help 会列出可用命令,而 firebase <command> --help 会显示某个命令的更多详细信息。

如果某个命令针对特定项目,你必须位于具有有效项目别名的项目目录中, 或者使用 -P <project_id> 标志指定 Firebase 项目 ID。

以下简要列出了可用命令及其功能:

配置命令
命令描述
login登录 Firebase 账号。需要使用 Web 浏览器。
logout退出 Firebase CLI。
login:ci生成用于非交互式环境的身份验证令牌。
login:add为 CLI 授权另一个账号。
login:list列出已授权的 CLI 账号。
login:use设置此项目要使用的默认账号
use设置当前 Firebase 项目并管理项目别名。
open快速在浏览器中打开相关项目资源。
init在当前目录中设置一个新的 Firebase 项目。此命令会在当前目录中创建一个 firebase.json 配置文件。
help显示 CLI 或特定命令的帮助信息。

在 login 命令后附加 --no-localhost(即 firebase login --no-localhost),即可复制并粘贴代码,而不是启动本地服务进行身份验证。例如,你通过 SSH 登录某个实例,并需要在该机器上向 Firebase 进行身份验证时,就可以使用此选项。

项目管理命令
命令描述
apps:create在项目中创建新的 Firebase 应用。
apps:list列出 Firebase 项目中已注册的应用。
apps:sdkconfig输出 Firebase 应用的配置。
projects:addfirebase将 Firebase 资源添加到 Google Cloud Platform 项目。
projects:create创建新的 Firebase 项目。
projects:list输出所有 Firebase 项目的列表。
部署和本地模拟

这些命令可用于部署和交互 Firebase 服务。

命令描述
emulators:exec启动本地 Firebase 模拟器,运行测试脚本,然后关闭模拟器。
emulators:start启动本地 Firebase 模拟器。
deploy部署 Firebase 项目。依赖 firebase.json 配置和本地项目文件夹。
serve使用 Firebase Hosting 配置和由 HTTPS 触发的 Cloud Functions 启动本地服务。依赖 firebase.json。
setup:emulators:database下载数据库模拟器。
setup:emulators:firestore下载 firestore 模拟器。
App Distribution 命令
命令描述
appdistribution:distribute上传发布二进制文件,并可选择将其分发给测试人员和运行自动化测试。
appdistribution:testers:list列出项目中的测试人员。
appdistribution:testers:add将测试人员添加到项目(以及通过标志指定的群组)。
appdistribution:testers:remove从项目(或通过标志指定的群组)中移除测试人员。
appdistribution:groups:list列出群组(测试人员群组)。
appdistribution:groups:create创建群组(测试人员群组)。
appdistribution:groups:delete删除群组(测试人员群组)。
appdistribution:testcases:export将测试用例导出为 YAML 文件。
appdistribution:testcases:import从 YAML 文件导入测试用例。

详细文档请参阅此处。

实时数据库命令
命令描述
database:get从当前项目的数据库中获取数据,并以 JSON 格式显示。支持查询已编入索引的数据。
database:set替换当前项目数据库中指定位置的所有数据。输入可来自文件、STDIN 或命令行参数。
database:push向当前项目数据库中指定位置的列表添加新数据。输入可来自文件、STDIN 或命令行参数。
database:remove删除当前项目数据库中指定位置的所有数据。
database:update对当前项目数据库中指定位置的数据执行部分更新。输入可来自文件、STDIN 或命令行参数。
database:profile对数据库使用情况进行分析并生成报告。
database:instances:create创建一个实时数据库实例。
database:instances:list列出实时数据库实例。
database:settings:get读取路径处的实时数据库设置
database:settings:set设置路径处的实时数据库设置。
扩展命令
命令描述
ext显示有关如何使用 ext 命令以及项目中已安装扩展的信息。
ext:configure配置现有扩展实例。
ext:info按名称显示扩展信息(指定版本时使用 [email protected])
ext:install安装扩展。
ext:sdk:install安装扩展的 SDK,以便在 functions 代码库中定义该扩展。
ext:list列出 Firebase 项目中已安装的所有扩展。
ext:uninstall根据实例 ID 卸载 Firebase 项目中已安装的扩展。
ext:update将现有扩展实例更新到最新版本。
Cloud Firestore 命令
命令描述
firestore:delete从当前项目的数据库中删除文档或集合。支持递归删除子集合。
firestore:indexes列出当前项目中部署的所有索引。
Cloud Functions 命令
命令描述
functions:log读取已部署的 Cloud Functions 日志。
functions:list列出 Firebase 项目中所有已部署的函数。
functions:config:set存储当前项目 Cloud Functions 的运行时配置值。
functions:config:get获取当前项目 Cloud Functions 的现有配置值。
functions:config:unset从当前项目的运行时配置中移除值。
functions:config:clone将运行时配置从一个项目环境复制到另一个项目环境。
functions:secrets:set创建或更新供 Cloud Functions for Firebase 使用的密钥。
functions:secrets:get获取密钥及其版本的元数据。
functions:secrets:access根据密钥及其版本访问密钥值。默认访问最新版本。
functions:secrets:prune删除未使用的密钥。
functions:secrets:destroy删除密钥。默认删除最新版本。
functions:delete按名称或组名称删除一个或多个 Cloud Functions。
functions:shell在本地模拟函数并启动 Node.js shell,以便使用测试数据调用这些本地函数。
Hosting 命令
命令描述
hosting:disable停止为当前项目提供 Firebase Hosting 流量。运行此命令后,项目的 Hosting URL 将显示“找不到站点”消息。
Remote Config 命令
命令描述
remoteconfig:get获取 Firebase 项目的 Remote Config 模板。
remoteconfig:versions:list获取最近发布的 Firebase Remote Config 模板版本列表。
remoteconfig:rollback将项目已发布的 Remote Config 模板回滚到 --version_number 标志指定的版本。
remoteconfig:experiments:get获取 Remote Config 实验。
remoteconfig:experiments:list获取 Remote Config 实验列表。
remoteconfig:experiments:delete删除 Remote Config 实验。
remoteconfig:rollouts:get获取 Remote Config 推出配置。
remoteconfig:rollouts:list获取 Remote Config 推出配置列表。
remoteconfig:rollouts:delete删除 Remote Config 推出配置。

使用 firebase:deploy --only remoteconfig 更新并发布项目的 Firebase Remote Config 模板。

身份验证

通用

Firebase CLI 可以使用以下四种身份验证方式,按优先级从高到低排列:

  • 用户令牌 - 已弃用:此身份验证方式将在未来的 firebase-tools 主版本中移除;请改用服务账号进行身份验证 - 提供通过 firebase login:ci 生成的显式长期 Firebase 用户令牌。请注意,这些令牌是极其敏感的长期凭据,并不适用于大多数情况。建议改用服务账号授权。可以通过以下两种方式之一设置令牌:
    • 在任何命令中设置 --token 标志,例如 firebase --token="<token>" projects:list。
    • 设置 FIREBASE_TOKEN 环境变量。
  • 本地登录 - 运行 firebase login,以自己的身份直接登录 CLI。CLI 会在你的计算机上缓存已授权的用户凭据。
  • 服务账号 - 设置 GOOGLE_APPLICATION_CREDENTIALS 环境变量,使其指向 JSON 服务账号密钥文件的路径。更多详情请参阅 Google Cloud 的身份验证入门指南。
  • 应用默认凭据 - 如果你使用 gcloud CLI,并通过 gcloud auth application-default login 登录,那么只要以上凭据均不存在,Firebase CLI 就会使用这些凭据。
多个账号

默认情况下,firebase login 会设置一个全局账号,供所有项目使用。 如果你有多个用于 Firebase 项目的 Google 账号,可以授权多个账号,并按项目或命令分别使用。

若要授权其他账号以供 CLI 使用,请运行 firebase login:add。 你可以使用 firebase login:list 查看已授权账号列表。

若要为特定 Firebase 项目目录设置默认账号,请在该目录中运行 firebase login:use,然后选择所需账号。 若要查看某个目录的默认账号,请运行 firebase login:list,当前上下文的 默认账号会列在首位。

若要为某次命令调用设置账号,请在任意命令中使用 --account 标志。 例如:firebase [email protected] deploy。指定的账号必须已通过 firebase login:add 添加到 Firebase CLI。

Cloud Functions 模拟器

Cloud Functions 模拟器通过 emulators:start、 serve 和 functions:shell 等命令运行。模拟的 Cloud Functions 会作为独立的 node 进程 在你的开发机器上运行,这意味着它们有自己的凭据发现机制。

默认情况下,这些 node 进程无法发现通过 firebase login 登录的凭据。 为了提供更好的开发体验,当你通过 firebase login 登录 CLI 后, 我们会获取用户凭据并构建临时凭据,然后通过 GOOGLE_APPLICATION_CREDENTIALS 将其传递给模拟器。只有在你尚未自行设置 GOOGLE_APPLICATION_CREDENTIALS 环境变量时,我们才会这样做。

在代理后使用

CLI 支持通过环境变量设置 HTTP(S) 代理。若要使用代理,请将环境中的 HTTPS_PROXY 或 HTTP_PROXY 值设为代理 URL(例如: HTTP_PROXY=http://127.0.0.1:12345)。

在 CI 系统中使用

Firebase CLI 需要浏览器来完成身份验证,但完全兼容 CI 和其他无头环境。

按照以下步骤在 CI 环境中运行 Firebase 命令。每个步骤的详细说明请参阅 Google Cloud 的身份验证入门指南。

  1. 创建服务账号,并授予其对项目的适当访问权限。
  2. 为该服务账号创建服务账号密钥(JSON 文件)。
  3. 在 CI 系统中以安全且可访问的方式存储密钥文件。
  4. 在 CI 系统中运行 Firebase 命令时,设置 GOOGLE_APPLICATION_CREDENTIALS=/path/to/key.json。

若要禁用服务账号的访问权限,请在 Google Cloud Console 中找到项目对应的服务账号,然后移除密钥,或停用或删除该服务账号。

作为模块使用

Firebase CLI 也可以作为标准 Node 模块以编程方式使用。 每个命令都作为一个函数提供,该函数接受位置参数,后跟一个选项对象,并返回一个 Promise。

例如,在命令行中运行以下命令:

$ firebase --project="foo" apps:list ANDROID

对应的 Node 写法如下:

const client = require("firebase-tools");
client.apps
  .list("ANDROID", { project: "foo" })
  .then((data) => {
    // ...
  })
  .catch((err) => {
    // ...
  });

选项对象必须是最后一个参数,任何未指定的位置参数都会使用默认值 ""。以下 两种调用方式等效:

const client = require("firebase-tools");

// #1 - No arguments or options, defaults will be inferred
client.apps.list();

// #2 - Explicitly provide "" for all arguments and {} for options
client.apps.list("", {});

注意:在 Cloud Functions 等受限环境中使用时,并非所有 firebase-tools 命令都能以编程方式运行, 因为它们需要访问本地文件系统。

评论

支持 Markdown