配置和安全性参考文档

借助 Firebase CLI,您可以在本地、可进行版本控制的项目目录中管理 Firebase 项目。这包括项目中的 Data Connect 服务、这些服务的连接器,以及每个连接器的架构、查询和突变源等资源。您还可以使用该 CLI 安装和运行 Firebase Data Connect 模拟器。与在 Firebase 控制台中操作相比,使用 CLI 是一种更高效的替代方案。

如需了解如何安装 Firebase CLI 实验版(适用于 Private Preview 计划)以及 Data Connect 相关 CLI 命令,请参阅 CLI 参考

本参考指南介绍了以下内容:

  • firebase.json 项目配置文件中的 Data Connect 特定条目。
  • dataconnect.yamlconnector.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/admin

Firebase 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.delete
firebasedataconnect.googleapis.com/operations.cancel
firebasedataconnect.googleapis.com/services.create
firebasedataconnect.googleapis.com/services.update
firebasedataconnect.googleapis.com/services.delete
firebasedataconnect.googleapis.com/services.executeGraphql
firebasedataconnect.googleapis.com/services.executeGraphqlRead
firebasedataconnect.googleapis.com/schemas.create
firebasedataconnect.googleapis.com/schemas.update
firebasedataconnect.googleapis.com/schemas.delete
firebasedataconnect.googleapis.com/schemaRevisions.create
firebasedataconnect.googleapis.com/schemaRevisions.delete
firebasedataconnect.googleapis.com/connectors.create
firebasedataconnect.googleapis.com/connectors.update
firebasedataconnect.googleapis.com/connectors.delete
firebasedataconnect.googleapis.com/connectorRevisions.create
firebasedataconnect.googleapis.com/connectorRevisions.delete
firebasedataconnect.googleapis.com/viewer

Firebase 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.list
cloudresourcemanager.googleapis.com/projects.get

firebasedataconnect.googleapis.com/operations.list
firebasedataconnect.googleapis.com/operations.get
firebasedataconnect.googleapis.com/locations.list
firebasedataconnect.googleapis.com/locations.get
firebasedataconnect.googleapis.com/services.list
firebasedataconnect.googleapis.com/services.get
firebasedataconnect.googleapis.com/schemas.list
firebasedataconnect.googleapis.com/schemas.get
firebasedataconnect.googleapis.com/schemaRevisions.list
firebasedataconnect.googleapis.com/schemaRevisions.get
firebasedataconnect.googleapis.com/connectors.list
firebasedataconnect.googleapis.com/connectors.get
firebasedataconnect.googleapis.com/connectorRevisions.list
firebasedataconnect.googleapis.com/connectorRevisions.get
firebasedataconnect.googleapis.com/dataAdmin

Firebase Data Connect API Data Admin

此角色由 Cloud Owner、Cloud Editor、
Firebase Admin 和 Firebase Develop Admin 角色提供。
拥有对数据源的完整读写权限。

firebasedataconnect.googleapis.com/services.executeGraphql
firebasedataconnect.googleapis.com/services.executeGraphqlRead
firebasedataconnect.googleapis.com/dataViewer

Firebase Data Connect API Data Viewer

此角色由 Cloud Owner、Cloud Editor、
Firebase Admin 和 Firebase Develop Admin 角色提供。
拥有对数据源的只读权限。

firebasedataconnect.googleapis.com/services.executeGraphqlRead