このクイックスタートでは、小さなサンプル データベースを作成してデプロイし、 React フロントエンドからアクセスします。
前提条件
このクイックスタートを完了するには、次のものが必要です。
- NPM を含む Node.js 環境。
- Google アカウント。
チュートリアル
| チュートリアル | |
|---|---|
1. プロジェクトの初期化新しいディレクトリを作成し、そのディレクトリで Firebase プロジェクトを初期化します。プロンプトが表示されたら、 次のオプションを選択します。
|
|
2. 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 } } |
3. スキーマとオペレーションをデプロイするデータベース スキーマ、クエリ、ミューテーションを変更した場合は、データベースに変更を反映させるために デプロイする必要があります。 |
|
4. サンプルデータでデータベースにシードを設定するこのシードデータを使用すると、サンプルアプリをテストするときに確認できます。注 このステップでは、管理タスクで許可されている任意の GraphQL を実行できます。 |
|
5. 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>; |
6. ウェブアプリを設定する次のコマンドを実行して、新しいウェブアプリを Firebase プロジェクトに追加します。 |
|
7. サンプル 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; |
8. ウェブアプリを試す開発用サーバーを起動して、サンプルアプリの動作を確認します。 |
|
次のステップ
Data Connect VS Code 拡張機能を試す
Data Connect で開発する場合は、 Data Connect VS Code 拡張機能を使用することを強くおすすめします。 Visual Studio Code を主要な開発環境として使用していない場合でも、この拡張機能には、スキーマとオペレーションの開発をより便利にするいくつかの機能があります。
- GraphQL 言語サーバー。 Data Connect 固有の構文チェックとオートコンプリート候補を提供します。Data Connect
- コードに沿った CodeLens ボタン。スキーマ定義ファイルからデータの読み取りと書き込みを行い、オペレーション定義からクエリとミューテーションを実行できます。
- 生成された SDK を GraphQL の定義と自動的に同期します。
- ローカル エミュレータの設定を簡素化します。
- 本番環境へのデプロイを簡素化します。
ローカル開発に Data Connect エミュレータを使用する
このチュートリアルでは、Data Connect スキーマとオペレーションを本番環境に直接デプロイする方法について説明しまし��が、アプリを積極的に開発している間は、本番環境データベースを変更しないことをおすすめします。代わりに、Data Connect エミュレータを設定し、本番環境ではなくエミュレータに対して開発作業を行います。エミュレータは、CloudSQL 上のライブ Postgres インスタンスと同様に動作するローカル PGlite インスタンスを設定します。
アプリのスキーマと オペレーションを作成する方法を学ぶ
Data Connect でアプリを開発する場合、スキーマとオペレーションの設計 は、最初に行う最も重要な開発タスクの 1 つです。
- Firebase コンソール の Gemini は、アプリの自然言語の説明から Data Connect スキーマを生成できる AI ツールです。このツールを使用すると、特にリレーショナル データベースを初めて使用する場合に、迅速に作業を開始できます。
- または、GraphQL を使用してデータベース スキーマ、クエリ、ミューテーションを直接作成することもできます。 まず、設計Data Connect スキーマのページから始め、後続のページに進んでオペレーションを作成する方法を学びます。