Firebase Data Connect 使用入门

在本快速入门中,您将学习如何完成以下操作:

  • Firebase Data Connect 添加到您的 Firebase 项目中。
  • 设置一个开发环境,其中包含一个 Visual Studio Code 扩展程序,以便与生产实例搭配使用。
  • 然后,我们将向您展示如何:
    • 为电子邮件应用创建架构,并部署到生产环境。
    • 为架构定义查询和变更
    • 将最终架构、查询和数据部署到生产环境。

前提条件

如需使用本快速入门,您需要满足以下条件。

关联到您的 Firebase 项目

  1. 如果您还没有 Firebase 项目,请先创建一个。
    1. Firebase 控制台中,点击 添加项目,然后按照屏幕上的说明操作。
  2. 将您的项目升级为 Blaze 方案。这样你就可以创建一个 Cloud SQL PostgreSQL 实例。

  3. 前往 Firebase 控制台的 Data Connect 部分,然后按照商品设置工作流程操作。

  4. 为 CloudSQL for PostgreSQL 数据库选择一个位置。

  5. 请记下项目、服务和数据库的名称及 ID,以便稍后确认。

  6. 按照其余设置流程操作,然后点击完成

选择并设置开发环境

Data Connect 支持两种原型设计开发体验:

  • 如果您是 Kotlin AndroidiOS网页开发者,则可以使用 VS Code 开发:在本地设计和测试架构及操作,同时 连接到 Cloud SQL for PostgreSQL 实例。
  • 如果您是 Web 开发者,则可以使用 IDX Development 在 IDX 工作区中进行开发,使用预配置的 IDX 模板(包含 PostgreSQL)、带有 Data Connect 模拟器的 VS Code 扩展程序,以及为您设置的快速入门代码。如需了解详情,请访问 Project IDX 网站

本快速入门重点介绍 VS Code 扩展程序开发流程。请按以下步骤继续操作:

  1. 为本地项目创建一个新目录。
  2. 在新目录中打开 VS Code。
  3. 从 Firebase Storage 下载捆绑为 VSIX 软件包的扩展程序。

  4. 在 VS Code 中,从 View 菜单中选择 Extensions

  5. 附加信息面板标题栏中,点击菜单图标 more_horizInstall from VSIX...(从 VSIX 安装)。

(可选)您可以安装本地 PostgreSQL 数据库,以便使用 Data Connect 模拟器进行本地开发。我们将在本课程的最后 本快速入门指南。

设置本地项目

按照常规说明安装 CLI。如果您已安装 npm,请运行以下命令:

npm install -g firebase-tools

设置项目目录

如需设置本地项目,请初始化项目目录。

在 VS Code 左侧面板中,点击 Firebase 图标以打开 Firebase VS 代码扩展程序界面。

在 Firebase Extensions 界面中:

  1. 确保您已登录。
  2. 点击 Run firebase init 按钮。
  3. 查看 VS Code 下方面板中的 Terminal 标签页,了解提示。
  4. 选择“数据关联”作为此目录中要使用的功能。
  5. 出现提示时,请提供 您之前在控制台中创建的 Data Connect 项目。

创建架构

在 Firebase 项目目录的 /dataconnect/schema/schema.gql 文件中,开始定义一个包含用户和电子邮件地址的 GraphQL 架构。

用户

Data Connect 中,GraphQL 字段会映射到列。用户有 uidname 和电子邮件地址 addressData Connect 可以识别多种基元数据类型:StringDate

复制以下代码段或取消对文件中的相应行的注释。

# File `/dataconnect/schema/schema.gql`

type User @table(key: "uid") {
   uid: String!
   name: String!
   address: String!
}

默认情况下,如果没有 UUID id 键,Firebase Data Connect 会添加一个 提供。不过,在本例中,您希望将 uid 作为主键, 也可以通过 @table(key: "uid") 指令完成。

电子邮件

现在您拥有了用户,可以对电子邮件进行建模了。在这里,您可以添加 电子邮件地址数据的字段(或列)。这一次,我们省略了添加主键的步骤 因为您可以依靠Data Connect来管理

# File `/dataconnect/schema/schema.gql`

type Email @table {
   subject: String!
   sent: Date!
   text: String!
   from: User!
}

请注意,from 字段已映射到 User 类型。Data Connect 了解这是 EmailUser 之间的关系,并会为您管理这项关系。

将架构部署到生产环境

如果您使用 Firebase VS Code 扩展程序处理生产数据库,则需要先部署架构,然后才能继续操作。将架构部署到生产数据库后,您应该能够在控制台中查看该架构。

  1. 您可以使用 Firebase VS Code 扩展程序进行部署。
    • 在扩展程序界面中,点击 Firebase Data Connect 面板下的部署
  2. 您可能需要审核架构更改并批准可能具有破坏性的架构 修改。系统会提示您执行以下操作:
    • 使用 firebase dataconnect:sql:diff 查看架构更改
    • 对更改感到满意后,请使用 firebase dataconnect:sql:migrate 启动的流程应用更改。

向表格添加数据

在 VS Code 编辑器面板中,您可以看到 CodeLens 按钮显示在 /dataconnect/schema/schema.gql 中的 GraphQL 类型。由于您已经部署了 您可以使用添加数据运行(生产环境)选项, 按钮可将数据添加到后端的数据库。

如需向 UserEmail 表添加记录,请执行以下操作:

  1. schema.gql 中,点击 User 类型上方的添加数据按钮 。
    Firebase Data Connect 的 Code Lens“添加数据”按钮
  2. 在生成的 User_insert.gql 文件中,为 三个字段。
  3. 点击运行(生产环境)按钮。
    Firebase Data Connect 的代码智能镜头“运行”按钮
  4. 重复上述步骤,将记录添加到 Email 表中,并在 fromUid 字段中提供用户的 uid,如生成的 Email_insert 更改中所提示。

定义查询

而最有趣的部分是查询。作为开发者,您习惯于编写 SQL 查询,而不是 GraphQL 查询,所以乍看起来可能有点不同。 不过,与原始 SQL 相比,GraphQL 要简洁得多,并且具有类型安全性。还有我们的 VS Code 扩展程序可简化开发体验。

开始修改 /dataconnect/connector/queries.gql 文件。如果您想获取所有电子邮件,请使用如下查询。

# File `/dataconnect/connector/queries.gql`

query ListEmails @auth(level: NO_ACCESS) {
  emails {
    id, subject, text, sent
    from {
      name
    }
  }
}

使用附近的 CodeLens 按钮执行查询。

这项功能非常令人兴奋,它可以将数据库的关系视为图表。由于电子邮件地址包含引用用户的 from 字段,因此您可以嵌套到该字段中,然后获取用户的相关信息。

将架构和查询部署到生产环境

您已完成一个开发迭代。现在,您可以 通过 Firebase 向服务器架构、数据和查询 扩展程序界面或 Firebase CLI,就像您对架构所做的那样 (#deploy-schema)。

如果您使用 Firebase VS Code 扩展程序进行部署,请点击部署按钮。

部署完成后,您应该还可以在控制台中查看和运行操作。您的 Data Connect 服务将准备好处理来自客户端的操作。Cloud SQL for PostgreSQL 实例将更新为最终部署的生成架构和数据。

(可选)在本地安装 PostgreSQL

在本地安装 PostgreSQL 并将其与模拟器集成后,您就可以在完全本地的开发环境中进行原型设计。

您可以安装新的 PostgreSQL 实例,也可以使用现有实例。

安装 PostgreSQL

按照适用于您的平台的说明安装 PostgreSQL 15.x 版。

记下安装顺序期间输出的主机名、端口、用户名和密码以及相关参数。

为了连接到您的 PostgreSQL 实例,模拟器需要:

  • 这些设置配置参数
  • dataconnect.yaml 中的数据库名称,以及在本地实例中初始化的同名数据库。

使用本地 PostgreSQL 实例

您可以使用现有的本地 PostgreSQL 实例,只需更新 Data Connect 模拟器设置。

firebase setup:emulators:dataconnect

出现提示时,按以下格式输入 PostgreSQL 连接字符串: postgresql://postgresusername:postgrespassword@localhost:5432/postgresdatabase?sslmode=disable

如需详细了解连接字符串,请参阅 PostgreSQL 文档

连接到您的本地 PostgreSQL 实例

完成此配置后,如需连接到本地数据库,请执行以下操作:

  1. 在 VS Code 的左侧面板中,点击 Firebase 图标以打开 Firebase VS Code 扩展程序界面。
  2. 点击 Connect to Local PostgreSQL(连接到本地 PostgreSQL)按钮。

后续步骤