借助 Firebase CLI,您可以在本地、可进行版本控制的项目目录中管理 Firebase 项目。这包括项目中的 Data Connect 服务、这些服务的连接器,以及每个连接器的架构、查询和突变源等资源。您还可以使用该 CLI 安装和运行 Firebase Data Connect 模拟器。与在 Firebase 控制台中操作相比,使用 CLI 是一种更高效的替代方案。
如需了解如何安装私密预览版计划的 Firebase CLI 实验,以及与 Data Connect 相关的 CLI 命令,请参阅 CLI 参考。
本参考指南介绍了以下内容:
- firebase.json项目配置文件中的 Data Connect 特定条目。
- dataconnect.yaml和- connector.yaml中的 Data Connect 配置。
- 您需要为使用 Data Connect 的项目配置的 IAM 角色。
Firebase 项目配置文件
firebase.json 配置参考文档
使用 dataconnect 键在项目中配置一项或多项 Data Connect 服务。
dataconnect: {
   source: string // Path to the directory containing the dataconnect.yaml service file.
}
dataconnect.yaml 配置参考
dataconnect.yaml 文件存储有关应用架构来源、连接器来源和数据源连接信息的位置的配置信息。该文件还可作为 Firebase CLI 的项目目录标识符。
schemaValidation 键用于控制在部署期间迁移架构时执行的架构验证级别。如果不设置任何值,dataconect:sql:migrate 命令的行为是应用兼容的更改,并在执行任何严格的更改之前提示您。设置后,行为如下:
- STRICT模式。在部署应用架构之前,数据库架构必须与应用架构完全一致。Data Connect 架构中未使用的任何表或列都将从数据库中删除。
- COMPATIBLE模式。数据库架构必须与应用架构兼容,然后才能部署应用架构;任何其他更改都被视为可选。兼容是指架构迁移基于您编写的应用架构。数据库中未被应用架构使用的元素将保持不变。因此,部署后,您的后端可能包含未使用的架构、表和列。
此文件中的其他键的值在下面的注释中进行了说明。
# The top-level Firebase Data Connect YAML file.
# The Firebase Data Connect API version to target.
# Optional. Defaults to the latest version.
specVersion: string
# The ID of the Firebase Data Connect service resource.
# Required.
serviceId: string
# The location of the Firebase Data Connect service.
# Required.
location: string
# Required.
schema:
  # Relative path to directory for schema definitions.
  # Recursively loads all .gql files in this directory.
  # Optional. If not present, defaults to ./schema.
  source: string
  # Datasource connection information.
  # Required.
  datasource:
    # Required.
    postgresql:
      # The name of the PostgreSQL database.
      # Required.
      database: string
      cloudSql:
        # The ID of the CloudSQL instance resource.
        # Required.
        instanceId: string
        # Schema validation mode for schema migrations.
        # Defaults to unspecified/commented out, meaning you are prompted to
        # review all changes during migration.
        # If desired, uncomment and indicate one of "STRICT" or "COMPATIBLE".
        schemaValidation: string
# Required.
# Relative paths to directories for connector definitions.
# Recursively loads all .gql files in the listed directories.
# All directories specified MUST contain a connector.yaml file.
connectorDirs: [string]
YAML 文件采用以下默认(但可配置)目录结构:
./(project root)
   /dataconnect
      dataconnect.yaml
      /schema
        *.gql
      /connector
        connector.yaml
        *.gql
connector.yaml 配置参考
使用 connector.yaml 配置默认身份验证模式和 SDK 生成选项。
# The connector-level YAML file.
# Required. The connector name of the Firebase Data Connect connector resource.
connectorId: string
# Optional. If not specified, no generated libraries (i.e. type-safe SDKs) will be generated.
generate:
    # Optional.
    javascriptSdk:
        # Path to the directory that will be updated with the latest generated
        # web SDK.
        # Required.
      - outputDir: string
        # Path to your package.json directory. If specified, the new generated sdk will be installed in this path.
        # Optional. If not provided, the package will not be auto-installed for you.
      - packageJsonDir: string
        # Name of the package to be created.
        # Optional. Defaults to @firebasegen/<connectorID>
      - package: string
        <option>: string
    # Optional.
    swiftSdk:
        # Path to the directory that will be updated with the latest generated
        # iOS Swift SDK.
        # Required.
      - outputDir: string
        # Name of the package to be created.
      - package: string
        <option>: string
    # Optional.
    kotlinSdk:
        # Path to the directory that will be updated with the latest generated
        # Android SDK.
        # Required.
      - outputDir: string
        # Name of the package to be created.
      - package: string
        <option>: string
Data Connect 项目的 IAM 配置
针对 Data Connect 的精细 IAM 角色
Firebase 基本角色和预定义角色会映射到较低级别的 Data Connect 角色。如需了解映射关系,请参阅下表。
如需更精细地管理 Data Connect 的各个 IAM 角色分配,请使用 Google Cloud 控制台。
| IAM 角色 | 权限 | 
|---|---|
| firebasedataconnect.googleapis.com/adminFirebase Data Connect API Admin 此角色包含 Firebase Data Connect API Viewer。 它等效于 firebasedataconnect.*。Cloud Owner、Cloud Editor、 Firebase Admin 和 Firebase Develop Admin 角色拥有此权限。 | 拥有对 Firebase Data Connect API 资源(包括数据)的完整访问权限。 firebasedataconnect.googleapis.com/operations.deletefirebasedataconnect.googleapis.com/operations.cancelfirebasedataconnect.googleapis.com/services.createfirebasedataconnect.googleapis.com/services.updatefirebasedataconnect.googleapis.com/services.deletefirebasedataconnect.googleapis.com/services.executeGraphqlfirebasedataconnect.googleapis.com/services.executeGraphqlReadfirebasedataconnect.googleapis.com/schemas.createfirebasedataconnect.googleapis.com/schemas.updatefirebasedataconnect.googleapis.com/schemas.deletefirebasedataconnect.googleapis.com/schemaRevisions.createfirebasedataconnect.googleapis.com/schemaRevisions.deletefirebasedataconnect.googleapis.com/connectors.createfirebasedataconnect.googleapis.com/connectors.updatefirebasedataconnect.googleapis.com/connectors.deletefirebasedataconnect.googleapis.com/connectorRevisions.createfirebasedataconnect.googleapis.com/connectorRevisions.delete | 
| firebasedataconnect.googleapis.com/viewerFirebase Data Connect API Viewer 此角色由 Cloud Owner、Cloud Editor、 Cloud Viewer、Firebase Admin、Firebase Viewer、 Firebase Develop Admin 和 Firebase Develop Viewer 角色提供。 | 拥有对 Firebase Data Connect API 资源的只读权限。角色不授予对数据的访问权限。 cloudresourcemanager.googleapis.com/projects.listcloudresourcemanager.googleapis.com/projects.getfirebasedataconnect.googleapis.com/operations.listfirebasedataconnect.googleapis.com/operations.getfirebasedataconnect.googleapis.com/locations.listfirebasedataconnect.googleapis.com/locations.getfirebasedataconnect.googleapis.com/services.listfirebasedataconnect.googleapis.com/services.getfirebasedataconnect.googleapis.com/schemas.listfirebasedataconnect.googleapis.com/schemas.getfirebasedataconnect.googleapis.com/schemaRevisions.listfirebasedataconnect.googleapis.com/schemaRevisions.getfirebasedataconnect.googleapis.com/connectors.listfirebasedataconnect.googleapis.com/connectors.getfirebasedataconnect.googleapis.com/connectorRevisions.listfirebasedataconnect.googleapis.com/connectorRevisions.get | 
| firebasedataconnect.googleapis.com/dataAdminFirebase Data Connect API Data Admin 此角色由 Cloud Owner、Cloud Editor、 Firebase Admin 和 Firebase Develop Admin 角色提供。 | 拥有对数据源的完整读写权限。 firebasedataconnect.googleapis.com/services.executeGraphqlfirebasedataconnect.googleapis.com/services.executeGraphqlRead | 
| firebasedataconnect.googleapis.com/dataViewerFirebase Data Connect API Data Viewer 此角色由 Cloud Owner、Cloud Editor、 Firebase Admin 和 Firebase Develop Admin 角色提供。 | 拥有对数据源的只读权限。 firebasedataconnect.googleapis.com/services.executeGraphqlRead |