借助 Firebase CLI,您可以在可进行版本控制的本地项目目录中管理 Firebase 项目。这包括项目中的 Data Connect 服务、这些服务的连接器,以及每个连接器的架构、查询和更改源等资源。借助该 CLI,您还可以安装和操作 Firebase Data Connect 模拟器。CLI 是 Firebase 控制台的有效替代方案。
如需了解如何安装适用于“不公开预览”计划的 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/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
|