在本快速入门中,您将创建并部署一个小型示例数据库,并从 React 前端访问该数据库。
前提条件
如需完成本快速入门,您需要具备以下条件:
- 具有 NPM 的 Node.js 环境。
- Google 账号。
教程
| 教程 | |
|---|---|
1. 创建新的 Firebase 项目首先,在 Firebase 控制台中创建一个新的 Firebase 项目。然后,将项目升级到 Blaze 方案。 |
|
2. 初始化您的项目创建一个新目录,并在其中初始化 Firebase 项目。出现提示时,请选择以下选项:
|
|
3. 查看示例 GraphQL 定义在 Data Connect 中,您可以使用 GraphQL 定义所有数据库架构和操作。初始化项目时,Firebase CLI 会创建一些示例定义,帮助您入门。 |
dataconnect/schema/schema.gql(摘录)
type Movie @table { title: String! imageUrl: String! genre: String } type MovieMetadata @table { movie: Movie! @unique rating: Float releaseYear: Int description: String } query ListMovies @auth(level: PUBLIC) { movies { id title imageUrl genre } } |
4. 部署架构和操作无论何时对数据库架构、查询或突变进行更改,您都必须部署这些更改,才能使它们在数据库中生效。 |
|
5. 使用示例数据为数据库播种此初始数据将为您提供在测试示例应用时可供查看的内容。请注意,在此步骤中,您正在执行任意 GraphQL,这对于管理任务是允许的。 |
|
6. 生成 JavaScript 客户端 SDK此命令会使用您的 GraphQL 定义生成一个专门针对您的数据库的 JavaScript 库,其中包含完整的类型定义。您可以在客户端应用中使用此库来执行所有数据库操作。 您可以通过向 |
export interface ListMoviesData { movies: ({ id: UUIDString; title: string; imageUrl: string; genre?: string | null; } & Movie_Key)[]; } export function useListMovies( options?: useDataConnectQueryOptions&<ListMoviesData> ): UseDataConnectQueryResult&<ListMoviesData, undefined>; |
7. 设置 Web 应用运行以下命令,将新的 Web 应用添加到您的 Firebase 项目中。 |
|
8. 编写示例 React 客户端将 请注意,应用使用生成的 SDK 中的函数完成必要的数据库访问。为 React 生成的 SDK 使用 TanStack Query 来处理状态管理。 |
import { initializeApp } from 'firebase/app'; import firebaseConfig from './firebase-config.json'; import { QueryClient, QueryClientProvider } from '@tanstack/react-query'; import { useListMovies } from '@dataconnect/generated/react'; import './App.css'; const app = initializeApp(firebaseConfig); const queryClient = new QueryClient(); function App() { return ( <QueryClientProvider client={queryClient}> <Movies /> </QueryClientProvider> ); } function Movies() { const { isLoading, data } = useListMovies(); if (isLoading) { return <h1>...</h1> } return ( <> {data?.movies.map( movie => <h1 key={movie.id}>{movie.title}</h1> )} </> ); } export default App; |
9. 试用 Web 应用启动开发服务器,查看示例应用的实际效果。 |
|
后续步骤
试用 Visual Studio Code 扩展程序
使用 Data Connect 进行开发时,我们强烈建议使用 Visual Studio Code 扩展程序。即使您不使用 Visual Studio Code 作为主要开发环境,该扩展程序也提供了多项功能,可让架构和操作开发更加便捷:
- 一个 GraphQL 语言服务器,提供特定于 Data Connect 的语法检查和自动补全建议
- 与代码对齐的 CodeLens 按钮,可让您从架构定义文件中读取和写入数据,并从操作定义中执行查询和突变。
- 自动使生成的 SDK 与 GraphQL 定义保持同步。
- 简化了本地模拟器设置。
- 简化了向生产环境的部署。
使用 Data Connect 模拟器进行本地开发
虽然本教程介绍了如何将 Data Connect 架构和操作直接部署到生产环境,但您可能不希望在积极开发应用时更改生产数据库。相反,您应该设置 Data Connect 模拟器,并针对该模拟器(而非生产环境)开展开发工作。模拟器会设置一个本地 PGlite 实例,该实例的行为与 CloudSQL 上的实时 Postgres 实例类似。
了解如何为应用编写架构和操作
使用 Data Connect 开发应用时,设计架构和操作是您要完成的首要且最重要的开发任务之一。
- Firebase 控制台中的 Gemini 是一款 AI 工具,可根据应用的自然语言描述生成 Data Connect 架构。借助此工具,您可以非常快速地开始使用,尤其是在您之前从未处理过关系型数据库的情况下。
- 或者,您也可以直接使用 GraphQL 编写数据库架构、查询和变更。 首先,请参阅设计 Data Connect 架构页面,然后继续浏览后续页面,了解如何编写操作。