Firebase CLI (GitHub) 提供了各种用于管理、查看 Firebase 项目并在其中进行部署的工具。
在使用 Firebase CLI 之前,请设置 Firebase 项目。
设置或更新 CLI
安装 Firebase CLI
您可以使用与您的操作系统、经验水平和/或使用场景相匹配的方法来安装 Firebase CLI。无论采用何种方式安装 CLI,您都可以使用相同的功能和 firebase
命令。
Windows
您可以使用以下任何一种方法来安装 Windows 版 Firebase CLI:
选项 | 说明 | 适合 |
---|---|---|
独立二进制文件 | 下载 CLI 的独立二进制文件。然后,您可以访问可执行文件以打开 shell,在其中可以运行 firebase 命令。 |
新开发者 未使用过或不熟悉 Node.js 的开发者 |
npm | 使用 npm (Node Package Manager) 安装 CLI 并启用全局可用的 firebase 命令。 |
使用 Node.js 的开发者 |
独立二进制文件
如需下载并运行 Firebase CLI 的二进制文件,请按以下步骤操作:
访问二进制文件以打开 shell,在其中可以运行
firebase
命令。继续登录并测试 CLI。
npm
如需使用 npm
(Node Package Manager) 安装 Firebase CLI,请按以下步骤操作:
使用 nvm-windows (Node Version Manager) 安装 Node.js。安装 Node.js 时会自动安装
npm
命令工具。运行以下命令,通过
npm
安装 Firebase CLI:npm install -g firebase-tools
此命令会启用全局可用的
firebase
命令。继续登录并测试 CLI。
macOS 或 Linux
您可以使用以下任一种方法安装 macOS 版或 Linux 版 Firebase CLI:
选项 | 说明 | 适合 |
---|---|---|
自动安装脚本 | 运行一条命令来自动检测您的操作系统,下载最新的 CLI 版本,然后启用全局可用的 firebase 命令。 |
新开发者 未使用过或不熟悉 Node.js 的开发者 在 CI/CD 环境中自动部署 |
独立二进制文件 | 下载 CLI 的独立二进制文件。然后,您可以按照适合自己的工作流的方式配置并运行二进制文件。 | 可以使用 CLI 完全自定义的工作流 |
npm | 使用 npm (Node Package Manager) 安装 CLI 并启用全局可用的 firebase 命令。 |
使用 Node.js 的开发者 |
自动安装脚本
如需使用自动安装脚本安装 Firebase CLI,请按以下步骤操作:
运行以下 cURL 命令:
curl -sL https://firebase.tools | bash
该脚本会自动检测您的操作系统,下载最新 Firebase CLI 版本,然后启用全局可用的
firebase
命令。继续登录并测试 CLI。
如需了解自动安装脚本的更多示例和详细信息,请参阅 firebase.tools 上的脚本源代码。
独立二进制文件
如需下载并运行适用于您的操作系统的 Firebase CLI 二进制文件,请按以下步骤操作:
(可选)设置全局可用的
firebase
命令。- 运行
chmod +x ./firebase_tools
,将该二进制文件转为可执行文件。 - 将该二进制文件的路径添加到您的 PATH 环境变量中。
- 运行
继续登录并测试 CLI。
npm
如需使用 npm
(Node Package Manager) 安装 Firebase CLI,请按以下步骤操作:
登录并测试 Firebase CLI
安装 CLI 后,您必须通过身份验证。随后可以通过列出 Firebase 项目来确认身份验证。
运行以下命令,使用您的 Google 账号登录 Firebase:
firebase login
此命令会将您的本地机器与 Firebase 关联,并授予您对 Firebase 项目的访问权限。
通过列出 Firebase 项目来测试 CLI 是否已正确安装,以及是否能访问您的账号:运行以下命令:
firebase projects:list
显示的列表应与 Firebase 控制台中列出的 Firebase 项目相同。
更新到最新的 CLI 版本
一般来说,您应该使用最新的 Firebase CLI 版本。
更新 CLI 版本的方式取决于您的操作系统以及 CLI 的安装方式。
Windows
- 独立二进制文件:下载新版本,然后安装新版本来替换系统上的旧版本
- npm:运行
npm install -g firebase-tools
macOS
- 自动安装脚本:运行
curl -sL https://firebase.tools | upgrade=true bash
- 独立二进制文件:下载新版本,然后安装新版本来替换系统上的旧版本
- npm:运行
npm install -g firebase-tools
Linux
- 自动安装脚本:运行
curl -sL https://firebase.tools | upgrade=true bash
- 独立二进制文件:下载新版本,然后安装新版本来替换系统上的旧版本
- npm:运行
npm install -g firebase-tools
将 CLI 与 CI 系统配合使用
Firebase CLI 需要使用浏览器来完成身份验证,不过该 CLI 与 CI 和其他无头环境完全兼容。
在装有浏览器的机器上安装 Firebase CLI。
通过运行以下命令来启动登录流程:
firebase login:ci
访问提供的网址,然后使用 Google 账号登录。
输出一个新的刷新令牌。当前的 CLI 会话不会受到影响。
将输出的令牌以安全但可访问的方式存储在 CI 系统中。
在运行
firebase
命令时使用此令牌。您可以使用以下两种方法中的任一种:方法 1:将令牌存储为环境变量
FIREBASE_TOKEN
。您的系统会自动使用令牌。方法 2:在 CI 系统中运行所有
firebase
命令时均使用--token TOKEN
标志。
令牌加载的优先顺序为标志、环境变量、所需的 Firebase 项目。
初始化 Firebase 项目
使用 CLI 执行的许多常见任务(如部署到 Firebase 项目)都需要用到项目目录。您可以使用 firebase init
命令创建项目目录。项目目录通常就是源代码控制根目录,在运行 firebase init
之后,该目录会包含一个 firebase.json
配置文件。
如需初始化新的 Firebase 项目,请在应用目录下运行以下命令:
firebase init
firebase init
命令会引导您逐步设置项目目录和某些 Firebase 产品。在项目初始化期间,Firebase CLI 会要求您完成以下任务:
选择要在 Firebase 项目中设置的 Firebase 产品。
此步骤提示您为所选产品的特定文件设置配置。如需详细了解这些配置,请参阅具体产品(例如 Hosting)的文档。请注意,您以后可以随时运行
firebase init
来设置更多 Firebase 产品。选择默认的 Firebase 项目。
此步骤会将当前项目目录与一个 Firebase 项目相关联,以便项目专用命令(如
firebase deploy
)会针对相应的 Firebase 项目运行。您还可以将同一个项目目录与多个 Firebase 项目关联(如预演项目和生产项目)。
在初始化结束时,Firebase 会在本地应用目录的根目录下自动创建以下两个文件:
firebase.json
配置文件,其中列出了您的项目配置。.firebaserc
文件,其中存储有您的项目别名。
firebase.json
文件
运行 firebase init
命令会在您的项目目录的根目录下创建一个 firebase.json
配置文件。
您需要创建 firebase.json
文件才能使用 Firebase CLI 部署资源,因为该文件指定将项目目录中的哪些文件和设置部署到您的 Firebase 项目。由于某些设置既可以在项目目录中定义,也可以在 Firebase 控制台中定义,因此请确保解决任何潜在的部署冲突。
您可以直接在 firebase.json
文件中配置大多数 Firebase Hosting 选项。但是,对于其他可以使用 Firebase CLI 部署的 Firebase 服务,firebase init
命令会创建特定文件(例如,用于 Cloud Functions 的 index.js
文件),您可以在其中为这些服务定义相关设置。您还可以在 firebase.json
文件中设置部署前钩子或部署后钩子。
下面是包含默认设置的示例 firebase.json
文件(假定您在初始化期间选择 Firebase Hosting、Cloud Firestore 和 Cloud Functions for Firebase,并且选择了 TypeScript 源代码和 lint 选项)。
{
"hosting": {
"public": "public",
"ignore": [
"firebase.json",
"**/.*",
"**/node_modules/**"
]
},
"firestore": {
"rules": "firestore.rules",
"indexes": "firestore.indexes.json"
},
"functions": {
"predeploy": [
"npm --prefix \"$RESOURCE_DIR\" run lint",
"npm --prefix \"$RESOURCE_DIR\" run build"
]
}
}
默认情况下使用 firebase.json
,但您可以传递 --config PATH
标志以指定另一配置文件。
适用于多个 Cloud Firestore 数据库的配置
运行 firebase init
时,您的 firebase.json
文件将包含一个与项目的默认数据库相对应的 firestore
键,如上所示。
如果您的项目包含多个 Cloud Firestore 数据库,请修改 firebase.json
文件,将不同的 Cloud Firestore Security Rules 和数据库索引源文件与每个数据库相关联。使用 JSON 数组修改该文件,每个数据库对应一个条目。
"firestore": [
{
"database": "(default)",
"rules": "firestore.default.rules",
"indexes": "firestore.default.indexes.json"
},
{
"database": "ecommerce",
"rules": "firestore.ecommerce.rules",
"indexes": "firestore.ecommerce.indexes.json"
}
],
在部署时要忽略的 Cloud Functions 文件
在部署函数时,CLI 会自动指定 functions
目录中要忽略的文件列表。这样可以避免将无关的文件部署到后端,这类文件可能会增加部署的数据大小。
下面是默认忽略的文件列表(以 JSON 格式显示):
"ignore": [
".git",
".runtimeconfig.json",
"firebase-debug.log",
"firebase-debug.*.log",
"node_modules"
]
如果您在 firebase.json
中为 ignore
添加自己的自定义值,请务必保留上面显示的文件列表(如果缺失,请添加)。
管理项目别名
您可以将多个 Firebase 项目与同一个项目目录相关联。例如,您可能希望将一个 Firebase 项目用于预演环境,将另一个 Firebase 项目用于生产环境。使用不同的项目环境,您可以在将更改部署到生产环境之前进行验证。使用 firebase use
命令,您可以在别名之间切换,也可以创建新别名。
添加项目别名
当您在项目初始化期间选择 Firebase 项目时,系统会自动为该项目分配 default
别名。但是,如需允许针对不同的 Firebase 项目运行项目专有命令,但却使用同一个项目目录,请在项目目录中运行以下命令:
firebase use --add
此命令会提示您选择另一个 Firebase 项目,并为该项目分配一个别名。分配的别名会写入项目目录中的 .firebaserc
文件。
使用项目别名
如需使用已分配的 Firebase 项目别名,请在项目目录中运行以下任一命令。
命令 | 说明 |
---|---|
firebase use |
查看项目目录中当前定义的别名列表 |
firebase use \ |
针对指定的 Firebase 项目运行所有命令。 CLI 将此项目用作当前“活跃项目”。 |
firebase use --clear |
清除活跃项目。
在运行其他 CLI 命令之前运行 |
firebase use \ |
从项目目录中移除别名。 |
您可以通过向任何 CLI 命令传递 --project
标志来替换用作当前活跃项目的项目。例如,您可以将 CLI 设置为针对已为其分配 staging
别名的 Firebase 项目运行。如果您要针对已为其分配 prod
别名的 Firebase 项目运行单个命令,则可以运行
之类的命令。
源代码控制和项目别名
通常情况下,您应将 .firebaserc
文件签入源代码控制系统,以允许您的团队共用项目别名。但是,对于开源项目或起始模板,您通常不应签入 .firebaserc
文件。
如果您的开发项目专供自己使用,您可以在每个命令中传递 --project
标志,也可以运行 firebase use PROJECT_ID
,而无需为 Firebase 项目分配别名。
在本地提供并测试您的 Firebase 项目
您可以在将 Firebase 项目部署到生产环境之前,先在本地托管的网址中查看并测试该项目。如果您只想测试选定功能,则可以在 firebase serve
命令的标志中使用英文逗号分隔列表。
如果您想执行以下任一任务,请在本地项目目录的根目录中运行以下命令:
- 查看 Firebase 托管应用的静态内容。
- 使用 Cloud Functions 为 Firebase Hosting 生成动态内容,并且您想要使用生产(已部署)HTTP 函数在本地网址上模拟 Hosting。
firebase serve --only hosting
使用本地 HTTP 函数模拟您的项目
在项目目录中运行以下任一命令,以使用本地 HTTP 函数模拟您的项目。
如需在本地网址上模拟 HTTP 函数和托管内容以便进行测试,请使用以下任一命令:
firebase serve
firebase serve --only functions,hosting // uses a flag
如需仅模拟 HTTP 函数,请使用以下命令:
firebase serve --only functions
通过其他本地设备进行测试
默认情况下,firebase serve
仅响应来自 localhost
的请求。这意味着您可以通过计算机的网络浏览器访问托管内容,但不能通过网络中的其他设备访问托管内容。如果您想要通过其他本地设备进行测试,请使用 --host
标志,如下所示:
firebase serve --host 0.0.0.0 // accepts requests to any host
部署到 Firebase 项目
Firebase CLI 负责管理将代码和资源部署到 Firebase 项目的工作,包括:
- Firebase Hosting 网站的新版本
- 全新的、经过更新的或现有的 Cloud Functions for Firebase
- 针对 Firebase Data Connect 新增或更新的架构和连接器
- Firebase Realtime Database 的规则
- Cloud Storage for Firebase 的规则
- Cloud Firestore 的规则
- Cloud Firestore 的索引
如需部署至 Firebase 项目,请在项目目录下运行以下命令:
firebase deploy
您可以选择向每个部署添加注释。此注释将与项目的“Firebase Hosting”页面上的其他部署信息一起显示。例如:
firebase deploy -m "Deploying the best new feature ever."
使用 firebase deploy
命令时,请注意以下事项:
如需从项目目录部署资源,该项目目录必须包含
firebase.json
文件。firebase init
命令已自动为您创建此文件。默认情况下,
firebase deploy
会为项目目录中所有可部署的资源创建一个版本。如需部署特定的 Firebase 服务或功能,请使用部分部署。
安全规则的部署冲突
对于 Firebase Realtime Database、Cloud Storage for Firebase 和 Cloud Firestore,您可以在本地项目目录或 Firebase 控制台中定义安全规则。
避免部署冲突的另一个方法是使用部分部署,并且仅在 Firebase 控制台中定义规则。
部署配额
您可能会超出 Firebase 部署操作的速率或用量配额(虽然这种情况不太可能发生)。例如,部署大量函数时,您可能会收到 HTTP 429 Quota
错误消息。如需解决此类问题,请尝试使用部分部署。
回滚部署
您可以从项目的“Firebase Hosting”页面回滚 Firebase Hosting 部署,只需为所需的版本选择回滚操作即可。
目前,您无法回滚 Firebase Realtime Database、Cloud Storage for Firebase 或 Cloud Firestore 的安全规则版本。
部署特定的 Firebase 服务
如果您只想部署特定的 Firebase 服务或功能,则可以在 firebase deploy
命令的标志中使用英文逗号分隔的列表。例如,以下命令会部署 Firebase Hosting 内容和 Cloud Storage 安全规则。
firebase deploy --only hosting,storage
下表列出了可部分部署的服务和功能。这些标志中的名称对应于 firebase.json
配置文件中的键。
标志语法 | 部署的服务或功能 |
---|---|
--only hosting |
Firebase Hosting 内容 |
--only database |
Firebase Realtime Database 条规则 |
--only dataconnect |
Firebase Data Connect 架构和连接器 |
--only storage |
Cloud Storage for Firebase 条规则 |
--only firestore |
所有已配置数据库的 Cloud Firestore 规则和索引 |
--only functions |
Cloud Functions for Firebase(可以使用此标志更有针对性的版本) |
部署特定函数
部署函数时,您可以针对具体的函数。例如:
firebase deploy --only functions:function1
firebase deploy --only functions:function1,functions:function2
另一种方法是在 /functions/index.js
文件中将函数整理为不同的导出组。将函数分组可让您使用单个命令部署多个函数。
例如,您可以编写以下函数来定义 groupA
和 groupB
:
var functions = require('firebase-functions/v1');
exports.groupA = {
function1: functions.https.onRequest(...),
function2: functions.database.ref('\path').onWrite(...)
}
exports.groupB = require('./groupB');
在此示例中,一个单独的 functions/groupB.js
文件包含用于具体定义 groupB
中函数的其他函数。例如:
var functions = require('firebase-functions/v1');
exports.function3 = functions.storage.object().onChange(...);
exports.function4 = functions.analytics.event('in_app_purchase').onLog(...);
在此示例中,您可以在项目目录下运行以下命令来部署所有 groupA
函数:
firebase deploy --only functions:groupA
或者,您也可以运行以下命令来部署一个组中的特定函数:
firebase deploy --only functions:groupA.function1,groupB.function4
删除函数
Firebase CLI 支持以下命令和选项,供您删除以前部署的函数:
删除所有区域中与指定名称匹配的所有函数:
firebase functions:delete FUNCTION-1_NAME
删除在非默认区域中运行的指定函数:
firebase functions:delete FUNCTION-1_NAME --region REGION_NAME
删除多个函数:
firebase functions:delete FUNCTION-1_NAME FUNCTION-2_NAME
删除指定的函数组:
firebase functions:delete GROUP_NAME
忽略确认提示:
firebase functions:delete FUNCTION-1_NAME --force
设置部署前和部署后脚本任务
您可以将 shell 脚本关联到 firebase deploy
命令,以执行部署前任务或部署后任务。例如,部署前脚本可以将 TypeScript 代码转译为 JavaScript,而部署后钩子可以让管理员知道系统向 Firebase Hosting 部署了新的网站内容。
如需设置部署前钩子或部署后钩子,请将 bash 脚本添加到您的 firebase.json
配置文件中。您可以直接在 firebase.json
文件中定义简短的脚本,也可以引用项目目录中的其他文件。
例如,以下脚本是某个部署后任务的 firebase.json
表达式,该任务会在成功部署至 Firebase Hosting 时发送 Slack 消息。
"hosting": {
// ...
"postdeploy": "./messageSlack.sh 'Just deployed to Firebase Hosting'",
"public": "public"
}
messageSlack.sh
脚本文件位于项目目录中,内容类似于:
curl -X POST -H 'Content-type: application/json' --data '{"text":"$1"}' \https://SLACK_WEBHOOK_URL
您可以为任何可部署的资源设置 predeploy
和 postdeploy
钩子。请注意,运行 firebase deploy
会触发在 firebase.json
文件中定义的所有部署前任务和部署后任务。如需仅运行那些与特定 Firebase 服务关联的任务,请使用部分部署命令。
predeploy
和 postdeploy
钩子都会将脚本的标准输出和错误流显示在终端上。如果出现故障,请注意以下事项:
- 如果部署前钩子未能按预期完成,则部署会取消。
- 无论部署因何种原因失败,都不会触发部署后钩子。
环境变量
在部署前钩子和部署后钩子中运行的脚本内,可以使用以下环境变量:
$GCLOUD_PROJECT
:活跃项目的 ID$PROJECT_DIR
:包含firebase.json
文件的根目录$RESOURCE_DIR
:(仅适用于hosting
和functions
脚本)要部署的 Hosting 资源或 Cloud Functions 资源所在目录的位置
管理多个 Realtime Database 实例
一个 Firebase 项目可以拥有多个 Firebase Realtime Database 实例。默认情况下,CLI 命令与您的默认数据库实例进行交互。
但是,您可以使用 --instance DATABASE_NAME
--instance
标记:
firebase database:get
firebase database:profile
firebase database:push
firebase database:remove
firebase database:set
firebase database:update
命令参考
CLI 管理命令
命令 | 说明 |
---|---|
帮助 | 显示 CLI 或特定命令的帮助信息。 |
init | 在当前目录中关联并设置一个新的 Firebase 项目。此命令会在当前目录中创建 firebase.json 配置文件。 |
login | 对 CLI 进行身份验证以登录 Firebase 账号。需要用到 Web 浏览器。 如需在不允许访问 localhost 的远程环境中登录 CLI,请使用 --no-localhost |
login:ci | 生成可用于非交互环境的身份验证令牌。 |
logout | 将 CLI 从 Firebase 账号退出登录。 |
open | 打开浏览器,以显示相关的项目资源。 |
projects:list | 列出您有权访问的所有 Firebase 项目。 |
use | 为 CLI 设置活跃 Firebase 项目。 管理项目别名。 |
项目管理命令
命令 | 说明 | |
---|---|---|
Firebase 项目管理 | ||
projects:addfirebase | 将 Firebase 资源添加到现有 Google Cloud 项目。 | |
projects:create | 创建新的 Google Cloud 项目,然后将 Firebase 资源添加到新项目。 | |
projects:list | 列出您有权访问的所有 Firebase 项目。 | |
Firebase 应用管理(iOS、Android、Web) | ||
apps:create | 在活跃项目中创建一个新的 Firebase 应用。 | |
apps:list | 列出活跃项目中已注册的 Firebase 应用。 | |
apps:sdkconfig | 输出 Firebase 应用的 Google 服务配置。 | |
setup:web | 已弃用。应改为使用 apps:sdkconfig 并指定 web 作为平台参数。输出 Firebase Web 应用的 Google 服务配置。 |
|
SHA 证书哈希管理(仅限 Android) | ||
apps:android:sha:create \ FIREBASE_APP_ID SHA_HASH |
将指定的 SHA 证书哈希添加到指定的 Firebase Android 应用。 | |
apps:android:sha:delete \ FIREBASE_APP_ID SHA_HASH |
从指定的 Firebase Android 应用中删除指定的 SHA 证书哈希。 | |
apps:android:sha:list \ FIREBASE_APP_ID |
列出指定 Firebase Android 应用的 SHA 证书哈希。 |
部署和本地开发
使用以下命令,您可以部署 Firebase Hosting 网站并与之进行互动。
命令 | 说明 |
---|---|
deploy | 将项目目录中的代码和资源部署到活跃项目。对于 Firebase Hosting,需要有 firebase.json 配置文件。
|
serve | 根据 Firebase Hosting 配置,启动一个本地 Web 服务器。对于 Firebase Hosting,需要有 firebase.json 配置文件。 |
App Distribution 命令
命令 | 说明 |
---|---|
appdistribution:distribute \ --app FIREBASE_APP_ID |
让测试人员可以访问此 build。 |
appdistribution:testers:add | 将测试人员添加到项目中。 |
appdistribution:testers:remove | 从项目中移除测试人员。 |
App Hosting 命令
命令 | 说明 |
---|---|
apphosting:backends:create \ --project PROJECT_ID \ --location REGION --app APP_ID |
创建与包含 App Hosting 后端的单个代码库相关联的托管式资源集合。(可选)通过 Firebase 应用 ID 指定现有的 Firebase Web 应用。 |
apphosting:backends:get \ BACKEND_ID \ --project PROJECT_ID \ --location REGION |
检索后端的特定详细信息,包括公开网址。 |
apphosting:backends:list \ --project PROJECT_ID |
检索与项目关联的所有活跃后端的列表。 |
firebase apphosting:backends:delete \ BACKEND_ID \ --project PROJECT_ID \ --location REGION |
从项目中删除后端。 |
firebase apphosting:config:export \ --project PROJECT_ID \ --secrets ENVIRONMENT_NAME |
导出 Secret,以便在应用模拟中使用。 默认为存储在 apphosting.yaml 中的 Secret,或者采用 --secrets 指定具有相应 apphosting.ENVIRONMENT_NAME.yaml 文件的任何环境。 |
firebase apphosting:rollouts:create \ BACKEND_ID \ --git_branch BRANCH_NAME \ --git_commit COMMIT_ID |
创建手动触发的发布。 酌情指定对分支的最新提交或者指定特定提交。如果未提供任何选项,则会提示从分支列表中进行选择。 |
apphosting:secrets:set
KEY
--project PROJECT_ID \ --location REGION \ --data-file DATA_FILE_PATH |
将 Secret 资料存储在 Secret Manager 中。 酌情提供用于读取 Secret 数据的文件路径。设置为 _ 以通过标准输入读取 Secret 数据。 |
apphosting:secrets:grantaccess
KEY
BACKEND_ID \ --project PROJECT_ID \ --location REGION |
向后端服务账号授予对所提供 Secret 的访问权限,以便在构建或运行时由 App Hosting 访问。 |
apphosting:secrets:describe
KEY \ --project PROJECT_ID |
获取 Secret 及其版本的元数据。 |
firebase apphosting:secrets:access \ KEY[@version] \ --project PROJECT_ID |
在给定 Secret 及其版本的情况下访问 Secret 值。默认访问最新版本。 |
Authentication(用户管理)命令
命令 | 说明 |
---|---|
auth:export | 将活跃项目的用户账号导出至 JSON 或 CSV 文件。如需了解详情,请参阅 auth:import 和 auth:export 页面。 |
auth:import | 将用户账号从 JSON 或 CSV 文件导入到活跃项目。如需了解详情,请参阅 auth:import 和 auth:export 页面。 |
Cloud Firestore 命令
命令 | 说明 |
---|---|
firestore:locations |
列出 Cloud Firestore 数据库的可用位置。 |
firestore:databases:create DATABASE_ID |
在 Firebase 项目中以原生模式创建数据库实例。 该命令采用以下标志:
|
firestore:databases:list |
列出 Firebase 项目中的数据库。 |
firestore:databases:get DATABASE_ID |
获取 Firebase 项目中指定数据库的配置。 |
firestore:databases:update DATABASE_ID |
更新 Firebase 项目中指定数据库的配置。 至少需要一个标志。该命令采用以下标志:
|
firestore:databases:delete DATABASE_ID |
删除 Firebase 项目中的数据库。 |
firestore:indexes |
列出 Firebase 项目中数据库的索引。 该命令采用以下标志:
|
firestore:delete |
删除活跃项目的数据库中的文档。借助 CLI,您可以递归删除某个集合中的所有文档。 请注意,使用 CLI 删除 Cloud Firestore 数据会产生读取和删除费用。如需了解详情,请参阅了解 Cloud Firestore 计费方式。 该命令采用以下标志:
|
Cloud Functions for Firebase 命令
命令 | 说明 |
---|---|
functions:config:clone | 将另一个项目的环境克隆到活跃 Firebase 项目。 |
functions:config:get | 检索活跃项目的 Cloud Functions 的现有配置值。 |
functions:config:set | 存储活跃项目的 Cloud Functions 的运行时配置值。 |
functions:config:unset | 从活跃项目的运行时配置中移除值。 |
functions:log | 从已部署的 Cloud Functions 中读取日志。 |
如需了解详情,请参阅环境配置文档。
Crashlytics 命令
命令 | 说明 |
---|---|
crashlytics:mappingfile:generateid \ --resource-file=PATH/TO/ANDROID_RESOURCE.XML |
在指定的 Android 资源 (XML) 文件中生成唯一的映射文件 ID。 |
crashlytics:mappingfile:upload \ --app=FIREBASE_APP_ID \ --resource-file=PATH/TO/ANDROID_RESOURCE.XML \ PATH/TO/MAPPING_FILE.TXT |
为此应用上传与 Proguard 兼容的映射 (TXT) 文件,并将其与指定的 Android 资源 (XML) 文件中声明的映射文件 ID 相关联。 |
crashlytics:symbols:upload \ --app=FIREBASE_APP_ID \ PATH/TO/SYMBOLS |
对于 Android 上的原生库崩溃,生成一个与 Crashlytics 兼容的符号文件,并将其上传到 Firebase 服务器。 |
Data Connect 命令
Data Connect CLI 参考指南中详细介绍了这些命令及其用例。
命令 | 说明 |
---|---|
dataconnect:services:list | 列出 Firebase 项目中已部署的所有 Data Connect 服务。 |
dataconnect:sql:diff \ SERVICE_ID |
对于指定的服务,显示本地 Data Connect 架构与 Cloud SQL 数据库架构之间的差异。 |
dataconnect:sql:migrate \ --force \ SERVICE_ID |
迁移 Cloud SQL 数据库的架构,使其与本地 Data Connect 架构相匹配。 |
dataconnect:sql:grant\ --role=ROLE \ --email=EMAIL \ SERVICE_ID |
向指定的用户或服务账号电子邮件地址授予 SQL 角色。 对于 --role 标志,要授予的 SQL 角色是:owner 、writer 或 reader 。对于 --email 标志,请提供要授予角色的用户或服务账号的电子邮件地址。 |
dataconnect:sdk:generate | 为 Data Connect 连接器生成类型化 SDK。 |
Extensions 命令
命令 | 说明 |
---|---|
ext | 显示有关如何使用 Firebase Extensions 命令的信息。 列出安装在活跃项目中的扩展程序实例。 |
ext:configure \ EXTENSION_INSTANCE_ID |
在扩展程序清单中重新配置扩展程序实例的参数值。 |
ext:info \ PUBLISHER_ID/EXTENSION_ID |
输出有关某个扩展程序的详细信息。 |
ext:install \ PUBLISHER_ID/EXTENSION_ID |
将扩展程序的新实例添加到扩展程序清单中。 |
ext:list | 列出安装在 Firebase 项目中的所有扩展程序实例。 输出每个扩展程序的实例 ID。 |
ext:uninstall \ EXTENSION_INSTANCE_ID |
从扩展程序清单中移除扩展程序实例。 |
ext:update \ EXTENSION_INSTANCE_ID |
在扩展程序清单中将扩展程序实例更新到最新版本。 |
ext:export | 将项目中安装的所有扩展程序实例导出到扩展程序清单中。 |
Extensions 发布方命令
命令 | 说明 |
---|---|
ext:dev:init | 为当前目录中的新扩展程序初始化框架代码库。 |
ext:dev:list \ PUBLISHER_ID |
输出由发布商上传的所有扩展程序的列表。 |
ext:dev:register | 将 Firebase 项目注册为扩展程序发布商项目。 |
ext:dev:deprecate \ PUBLISHER_ID/EXTENSION_ID \ VERSION_PREDICATE |
弃用与版本谓词匹配的扩展程序版本。 版本谓词可以是单个版本(例如 1.0.0 ),也可以是一系列版本(例如 >1.0.0 )。如果未提供版本谓词,则弃用该扩展程序的所有版本。 |
ext:dev:undeprecate \ PUBLISHER_ID/EXTENSION_ID \ VERSION_PREDICATE |
取消弃用与版本谓词匹配的扩展程序版本。 版本谓词可以是单个版本(例如 1.0.0 ),也可以是一系列版本(例如 >1.0.0 )。如果未提供版本谓词,则取消弃用该扩展程序的所有版本。 |
ext:dev:upload \ PUBLISHER_ID/EXTENSION_ID |
上传新版扩展程序。 |
ext:dev:usage \ PUBLISHER_ID |
显示发布商上传的扩展程序的安装次数和使用情况指标。 |
Hosting 命令
命令 | 说明 |
---|---|
hosting:disable |
停止为活跃 Firebase 项目传送 Firebase Hosting 流量。 运行此命令后,您的项目的 Hosting 网址将显示“找不到网站”消息。 |
Hosting 网站管理 | |
firebase hosting:sites:create \ SITE_ID |
使用指定的 (可选)通过传递以下标志指定要与新网站关联的现有 Firebase Web 应用: |
firebase hosting:sites:delete \ SITE_ID |
删除指定的 Hosting 网站 在删除该网站之前,CLI 会显示一条确认提示。 (可选)通过传递以下标志跳过确认提示: |
firebase hosting:sites:get \ SITE_ID |
检索指定 Hosting 网站的相关信息 |
firebase hosting:sites:list |
列出活跃 Firebase 项目的所有 Hosting 网站 |
预览渠道管理 | |
firebase hosting:channel:create \ CHANNEL_ID |
使用指定的 此命令不会在渠道中实施部署。 |
firebase hosting:channel:delete \ CHANNEL_ID |
删除指定的预览渠道 您无法删除网站的实际渠道。 |
firebase hosting:channel:deploy \ CHANNEL_ID |
将 Hosting 内容和配置部署到指定的预览渠道 如果预览渠道尚不存在,则此命令会先在默认 Hosting 网站中创建渠道,然后在该渠道中实施部署。 |
firebase hosting:channel:list | 列出默认 Hosting 网站中的所有渠道(包括“实际”渠道) |
firebase hosting:channel:open \ CHANNEL_ID |
打开浏览器以转到指定渠道的网址,或者在无法打开浏览器的情况下返回该网址 |
版本克隆 | |
firebase hosting:clone \ SOURCE_SITE_ID:SOURCE_CHANNEL_ID \ TARGET_SITE_ID:TARGET_CHANNEL_ID |
将指定“源”渠道中最近部署的版本克隆到指定的“目标”渠道 此命令还会在指定的“目标”渠道中实施部署。如果“目标”渠道尚不存在,则该命令会在“目标”Hosting 网站中创建一个新的预览渠道,然后在该渠道中实施部署。 |
firebase hosting:clone \ SOURCE_SITE_ID:@VERSION_ID \ TARGET_SITE_ID:TARGET_CHANNEL_ID |
将指定的版本复制到指定的“目标”渠道 此命令还会在指定的“目标”渠道中实施部署。如果“目标”渠道尚不存在,则该命令会在“目标”Hosting 网站中创建一个新的预览渠道,然后在该渠道中实施部署。 您可以在 Firebase 控制台的 Hosting 信息中心中找到 |
Realtime Database 命令
请注意,您可以通过 Firebase 控制台或者使用通用 firebase init
工作流或特定的 firebase init database
流程创建初始默认 Realtime Database 实例。
实例创建后,您可以按照管理多个 Realtime Database 实例中所述对其进行管理。
命令 | 说明 |
---|---|
database:get | 从活跃项目的数据库中提取数据,并以 JSON 格式显示这些数据。支持查询已编入索引的数据。 |
database:instances:create | 创建具有指定实例名称的数据库实例。接受用于在指定区域创建数据库的 --location 选项。如需了解要用于此选项的区域名称,请参阅为您的项目选择位置。
如果当前项目不存在数据库实例,系统会提示您运行 firebase init 流程来创建实例。 |
database:instances:list | 列出此项目的所有数据库实例。接受用于列出指定区域中的数据库的 --location 选项。如需了解要用于此选项的区域名称,请参阅为您的项目选择位置。 |
database:profile | 在活跃项目的数据库上构建操作配置文件。如需了解详情,请参阅 Realtime Database 操作类型。 |
database:push | 将新数据推送到活跃项目的数据库中指定位置处的列表。接受文件、STDIN 或命令行参数作为输入。 |
database:remove | 删除活跃项目的数据库中指定位置处的所有数据。 |
database:set | 替换活跃项目的数据库中指定位置处的所有数据。接受文件、STDIN 或命令行参数作为输入。 |
database:update | 在活跃项目的数据库中的指定位置处执行部分更新。接受文件、STDIN 或命令行参数作为输入。 |
Remote Config 命令
命令 | 说明 |
---|---|
remoteconfig:versions:list \ --limit NUMBER_OF_VERSIONS |
列出模板最新的 10 个版本。指定 0 以返回所有现有版本,或视需要传递 --limit 选项以限制返回的版本数。 |
remoteconfig:get \ --v, version_number VERSION_NUMBER --o, output FILENAME |
按版本获取模板(默认为最新版本),并将参数组、参数、条件名称和版本输出到一个表中。或者,您可以视需要使用 -o, FILENAME 将输出写入到指定文件中。 |
remoteconfig:rollback \ --v, version_number VERSION_NUMBER --force |
将 Remote Config 模板回滚到指定的先前版本号,或默认为上一个版本(当前版本 -1)。除非传递了 --force ,否则在继续回滚前提示 Y/N。 |