SuperAPI AI 工具集

firebase-cli

部署与运维

查看项目

更新于 10-15 12:57

技能介绍

firebase-cli 是一个以 Firebase 平台/项目操作为核心的终端技能,关键词包括 firebase、firebase deploy、firebase init、firebase emulators。它适用于当工作的重心是通过 CLI 操作 Firebase 平台或项目时。

用途

该技能用于通过 firebase-tools 命令行工具操作 Firebase。典型用途包括:安装或更新 firebase-tools、选择认证路径并验证 CLI 能操作目标项目;在仓库中通过 firebase init、.firebaserc、别名、目标和部署面进行 Firebase 配置引导;运行 Firebase 模拟器套件用于本地开发、持久化和测试执行;通过 CLI 部署或提升 Hosting、Functions、规则、Remote Config、Extensions 或 App Hosting;管理预览频道、项目别名、选择性部署和 CI/CD 认证;执行 Firebase 管理/数据任务,如认证导入导出、App Distribution、Remote Config 回滚和扩展管理。

主要能力

技能将请求路由到以下模式:安装/认证、引导/配置、本地模拟器、部署/发布、管理/数据操作,以及不确定/混合任务。每个模式对应不同的支持脚本和参考文档。

在安装/认证模式中,支持通过脚本安装或更新,优先使用 npm install(需 Node.js 20+),本地使用浏览器 OAuth 登录,CI 中优先使用服务账号凭证而非已弃用的 --token / FIREBASE_TOKEN。

在引导/配置模式中,使用 firebase init 针对所需的具体面进行初始化,使用 firebase use 和 firebase use --add 设置/检查别名,当存在多个 Hosting 站点、数据库实例或存储桶时使用部署目标。

在本地模拟器模式中,支持持久化本地数据、一次性测试运行,以及仅启动所需的模拟器(如 --only auth,firestore,functions)。

在部署/发布模式中,支持通过 --only 或 --except 限定部署范围,优先使用预览频道进行可审查的 Hosting 变更,App Hosting 的后端创建/发布被视为操作员工作流,CI 中使用 --non-interactive 和显式凭证,部署后验证实际变更。

在管理/数据操作模式中,支持认证导入导出、Remote Config 版本管理和回滚、App Distribution、Extensions 以及针对性清理任务,对破坏性命令(如 firestore:delete --recursive --force)要求明确确认。

使用方式

使用前需验证前置条件:确认 CLI 存在并捕获版本(firebase --version);确认运行时满足当前 firebase-tools 版本要求(npm 安装路径需要 Node.js 20+,独立安装器仅限 macOS/Linux);检查认证路径(本地交互使用 firebase login,CI/非交互使用通过 GOOGLE_APPLICATION_CREDENTIALS 的服务账号凭证);在部署或模拟器工作前检查项目配置(firebase.json、.firebaserc、目标特定目录)。

然后运行能回答请求的最小工作流。每个模式都有对应的验证方式:安装/认证验证 firebase --version、firebase login:list 或成功的认证绑定命令;引导/配置验证 firebase.json、.firebaserc、目标映射;模拟器验证运行端口、导入/导出数据目录、成功的测试运行;部署/发布验证部署目标列表、预览 URL 或部署后冒烟检查;管理/数据操作验证导出/导入文件、版本回滚确认、测试者/组更新或扩展状态。

适用场景

适用于以 Firebase 平台/项目操作为重心的任务,例如:在仓库中为 Hosting + Functions + 预览频道设置 Firebase;本地运行 auth + firestore 模拟器并在运行间保留数据;将 Hosting 部署到可审查的暂存频道,批准后再发布生产;执行认证导入导出、Remote Config 回滚、App Distribution 等管理任务。

限制

当主要工作是 Firebase / Google AI 产品内的后端 AI 工作流编排、工具、流程、RAG、评估或可观测性时,应使用 genkit;当主要工作是 Gemini 驱动的应用内功能的直接应用/客户端 SDK 集成时,应使用 genkit(client-ai-logic 模式);当主要工作是认证栈选择和产品认证架构而非 Firebase CLI 执行时,应使用 authentication-setup;当主要工作是模式/索引设计而非 Firebase CLI 命令时,应使用 database-schema-design;当主要工作是跨供应商的通用发布策略而非 Firebase 特定操作员命令时,应使用 deployment-automation。

最佳实践包括:优先选择工作流而非命令堆砌;在 CI 中使用服务账号,将 --token / FIREBASE_TOKEN 视为已弃用的逃生通道;通过 --only 和预览频道严格限定部署范围;保持仓库配置明确;在模拟器工作中刻意使用持久化;将 Firebase 操作员工作与应用/AI 逻辑工作分开;将破坏性管理命令视为高风险,在删除/回滚/导入操作前确认路径、版本和资源 ID。