用途:本技能用于配置、部署和排查 Firebase App Hosting——一种面向动态 Web 应用的托管方案,内置 GitHub 集成、Cloud Run 后端与 Cloud CDN 缓存。适用于首次编写 apphosting.yaml、调试构建或部署失败、配置环境变量与密钥、调整 Cloud Run 服务参数、修正依赖分类以及优化生产环境表现。
前提条件:需 Firebase 项目并启用 Blaze(按量付费)方案、连接 GitHub 仓库、Next.js 13.5.x+ 或 Angular 18.2.x+(或社区支持框架)、Node.js 20+,并具备 apphosting.yaml、锁文件与正确的 package.json。
主要能力:apphosting.yaml 支持 runConfig(CPU、内存、实例数、并发)、env(环境变量与密钥,可区分 BUILD/RUNTIME 可用性)、scripts(构建/运行命令覆盖)与 outputFiles。密钥建议存于 Cloud Secret Manager 并在配置中引用。
使用方式:初始化与创建后端可执行 firebase init apphosting 与 firebase apphosting:backends:create --project PROJECT_ID;推送主分支触发自动部署,或手动执行 firebase apphosting:rollouts:create BACKEND_ID --project PROJECT_ID;用 firebase apphosting:backends:get BACKEND_ID --project PROJECT_ID 查看状态;本地可用 firebase emulators:start --only apphosting 配合 apphosting.emulator.yaml 测试。
常见问题:生产环境出现模块找不到(依赖误放 devDependencies、缺锁文件、大小写敏感)、环境变量未生效(未写入配置、可用性设置错误、客户端变量缺 NEXT_PUBLIC_ 前缀)、Admin SDK 初始化报错(凭据被设为 BUILD 可用,应仅设 RUNTIME)、构建成功但部署失败(端口绑定、健康检查、内存或 CPU 过低)。
限制:内存与 CPU 需匹配(如超过 4 GiB 需 2+ vCPU);覆盖构建命令会禁用框架特定优化;Angular 的 i18n 支持有限;Next.js 中间件可能影响缓存。资料未提供具体收费价格与更多框架细节。