部署到 Firebase

本页面介绍了如何使用 Cloud Build 将应用部署到 Firebase。如果您是刚接触 Cloud Build,请先阅读 快速入门build 配置概览

准备工作

  • 启用 Cloud Build、Firebase 和 Resource Manager API。

    启用 API 所需的角色

    如需启用 API,您需要拥有 Service Usage Admin IAM 角色 (roles/serviceusage.serviceUsageAdmin),该角色包含 serviceusage.services.enable 权限。了解如何授予 角色

    启用 API

  • 如需运行此页面中的 gcloud 命令,请安装 Google Cloud CLI

  • 保留您的应用源代码,包括 firebase.json。您的源代码需要存储在代码库中,例如 Cloud Source Repositories、GitHub 或 Bitbucket。

  • 如果您还没有要部署到 Firebase 的项目,则可以通过 安装和初始化 Firebase来 创建默认项目。

必需的 IAM 权限

  1. 在 Google Cloud 控制台中,前往 Cloud Build 权限 页面:

    前往权限

  2. 选择构建的服务帐号。

  3. 将以下角色的状态设置为已启用

    • Cloud Build 服务账号 | 允许旧版 Cloud Build 服务帐号更新构建、写入构建日志和存储构建工件。
    • Firebase Admin | 允许 Cloud Build 访问 Firebase。
    • API 密钥查看者 | 允许 Cloud Build 在构建部署期间访问当前的 Firebase Hosting 配置。

使用 firebase Docker 映像

Cloud Build 提供了一个构建器映像,可用于在 Cloud Build 中调用 firebase 命令。如需在 Cloud Build 配置文件中使用此构建器,您可以使用 firebase 构建步骤部署到 Firebase:

  1. 创建一个名为 cloudbuild.yamlcloudbuild.json 的构建配置文件,其中 PROJECT_ID 是您的 Google Cloud 项目 ID,FIREBASE_PROJECT_ID 是 您的 Firebase 项目 ID:

    YAML

    steps:
    - name: "us-docker.pkg.dev/firebase-cli/us/firebase"
       args: ['deploy', '--project=FIREBASE_PROJECT_ID', '--only=hosting']
    ## Or, target a specific version of firebase-tools
    - name: "us-docker.pkg.dev/firebase-cli/us/firebase":x.y.z
       args: ['deploy', '--project=FIREBASE_PROJECT_ID', '--only=hosting']
    

    JSON

    {
      "steps": [
       {
          "name": "us-docker.pkg.dev/firebase-cli/us/firebase",
          "args": [
             "deploy",
             "--project",
             "FIREBASE_PROJECT_ID",
             "--only",
             "hosting"
           ]
      }
      ]
    }
    

    您可以使用 name: "us-docker.pkg.dev/firebase-cli/us/firebase":x.y.z 选择特定版本的 firebase-tools

  2. 使用构建配置文件启动构建:

    gcloud builds submit --region=REGION --config CONFIG_FILE_PATH SOURCE_DIRECTORY
    

    其中:

持续部署

通过创建 Cloud Build 触发器,您可以将软件自动部署到 Firebase。您可以将触发器配置为您在更新源代码时构建和部署映像。

要自动部署到 Firebase,请执行以下操作:

  1. 在代码库中,添加一个构建配置文件,其中包含调用 firebase deploy命令的步骤,其中PROJECT_ID 是您的 Google Cloud 项目 ID:

    YAML

    steps:
          - name: us-docker.pkg.dev/firebase-cli/us/firebase
            args: ['deploy', '--project=PROJECT_ID', '--only=hosting']
    

    JSON

    {
      "steps": [
       {
          "name": "us-docker.pkg.dev/firebase-cli/us/firebase",
          "args": [
             "deploy",
             "--project",
             "PROJECT_ID",
             "--only",
             "hosting"
           ]
      }
      ]
    }
    
  2. 使用上一步中创建的构建配置文件创建触发器:

    1. 在 Google Cloud 控制台中打开触发器 页面:

      打开“触发器”页面

    2. 从页面顶部的项目选择器下拉菜单中选择您的项目。

    3. 点击打开

    4. 点击创建触发器

      创建触发器页面上,输入以下设置:

      1. 输入触发器的名称。

      2. 选择用于启动触发器的代码库事件。

      3. 选择包含源代码和构建配置文件的代码库。

      4. 指定用于启动触发器的分支名称或标记名称的正则表达式。

      5. 配置:选择您之前创建的构建配置文件。

    5. 点击创建以保存您的构建触发器。

每当您将新代码推送到代码库时,系统都将自动在 Firebase 上启动构建和部署。

如需详细了解如何创建 Cloud Build 触发器,请参阅创建和管理构建触发器

代码示例

要查看使用 Cloud Build 部署到 Firebase 的代码示例,请转到 deploy-firebase-example

后续步骤