Bắt đầu sử dụng Firebase Data Connect bằng React

Trong hướng dẫn bắt đầu nhanh này, bạn sẽ tạo và triển khai một cơ sở dữ liệu mẫu nhỏ, đồng thời truy cập vào cơ sở dữ liệu đó từ một giao diện người dùng React.

Điều kiện tiên quyết

Để hoàn tất hướng dẫn bắt đầu nhanh này, bạn cần có những điều sau:

  • Môi trường Node.js có NPM.
  • Tài khoản Google.

Hướng dẫn

Hướng dẫn

1. Chạy dự án của bạn

Tạo một thư mục mới và chạy dự án Firebase trong thư mục đó. Khi được nhắc, hãy chọn các lựa chọn sau:

  • Tạo một dự án Firebase mới.
  • Không tạo giản đồ bằng Gemini (trong hướng dẫn này, bạn sẽ sử dụng một giản đồ mẫu dựng sẵn ).
  • Tạo một phiên bản Cloud SQL mới.
  • Tạo một mẫu React.
mkdir myproj ; cd myproj
npx -y firebase-tools@latest login --reauth
npx -y firebase-tools@latest init dataconnect

2. Xem lại các định nghĩa GraphQL mẫu

Trong Data Connect, bạn xác định tất cả các giản đồ và thao tác cơ sở dữ liệu bằng GraphQL. Khi bạn chạy dự án, Firebase CLI sẽ tạo một số định nghĩa mẫu để giúp bạn bắt đầu.

dataconnect/schema/schema.gql (excerpt)
type Movie @table {
  title: String!
  imageUrl: String!
  genre: String
}

type MovieMetadata @table {
  movie: Movie! @unique
  rating: Float
  releaseYear: Int
  description: String
}
dataconnect/example/queries.gql (excerpt)
query ListMovies @auth(level: PUBLIC) {
  movies {
    id
    title
    imageUrl
    genre
  }
}

3. Triển khai giản đồ và thao tác

Bất cứ khi nào bạn thay đổi giản đồ, truy vấn hoặc đột biến cơ sở dữ liệu, bạn phải triển khai các thay đổi đó để có hiệu lực trên cơ sở dữ liệu.

npx -y firebase-tools@latest deploy --only dataconnect

4. Gieo dữ liệu mẫu vào cơ sở dữ liệu

Dữ liệu gốc này sẽ cung cấp cho bạn một số thông tin để xem khi bạn kiểm thử ứng dụng mẫu. Xin lưu ý rằng trong bước này, bạn đang thực thi GraphQL tuỳ ý, được phép cho các tác vụ quản trị.

npx -y firebase-tools@latest \
         dataconnect:execute dataconnect/seed_data.gql

5. Tạo SDK JavaScript cho ứng dụng

Lệnh này sử dụng các định nghĩa GraphQL để tạo một thư viện JavaScript dành riêng cho cơ sở dữ liệu của bạn, hoàn chỉnh với các định nghĩa kiểu. Bạn sử dụng thư viện này trong ứng dụng máy khách để thực hiện tất cả các thao tác cơ sở dữ liệu.

Bạn có thể tạo thư viện cho nhiều nền tảng, bao gồm Kotlin cho Android, Swift cho iOS, và Flutter, bằng cách thêm các định nghĩa vào connector.yaml.

npx -y firebase-tools@latest dataconnect:sdk:generate
Auto-generated React SDK (excerpt)
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. Thiết lập ứng dụng web

Chạy các lệnh này để thêm một ứng dụng web mới vào dự án Firebase.

npx -y firebase-tools@latest \
          apps:create web react-example
npx -y firebase-tools@latest \
          apps:sdkconfig web \
          -o web-app/src/firebase-config.json
cd web-app
npm i firebase \
            @tanstack/react-query \
            @tanstack-query-firebase/react

7. Viết một ứng dụng React mẫu

Thay thế nội dung của web-app/src/App.jsx bằng ứng dụng React app đơn giản này.

Xin lưu ý rằng ứng dụng này hoàn tất việc truy cập cơ sở dữ liệu cần thiết bằng một hàm từ SDK đã tạo. SDK đã tạo cho React sử dụng TanStack Query để xử lý việc quản lý trạng thái.

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. Dùng thử ứng dụng web

Khởi động máy chủ phát triển để xem ứng dụng mẫu đang hoạt động.

npm run dev

Các bước tiếp theo

Dùng thử tiện ích Data Connect VS Code

Khi phát triển bằng Data Connect, bạn nên sử dụng tiện ích Data Connect VS Code. Ngay cả khi bạn không sử dụng Visual Studio Code làm môi trường phát triển chính, tiện ích này vẫn cung cấp một số tính năng giúp việc phát triển giản đồ và thao tác trở nên thuận tiện hơn:

  • Một máy chủ ngôn ngữ GraphQL, cung cấp tính năng kiểm tra cú pháp và các cụm từ gợi ý tự động hoàn thành dành riêng cho Data Connect
  • Các nút CodeLens cùng dòng với mã của bạn cho phép bạn đọc và ghi dữ liệu từ các tệp định nghĩa giản đồ và thực thi các truy vấn và đột biến từ các định nghĩa thao tác.
  • Tự động giữ cho các SDK đã tạo được đồng bộ hoá với các định nghĩa GraphQL.
  • Thiết lập trình mô phỏng cục bộ đơn giản.
  • Triển khai đơn giản vào môi trường phát hành công khai.

Sử dụng trình mô phỏng Data Connect để phát triển cục bộ

Mặc dù hướng dẫn này cho bạn biết cách triển khai trực tiếp các giản đồ Data Connect và thao tác vào môi trường thực tế, nhưng có thể bạn sẽ không muốn thay đổi cơ sở dữ liệu môi trường thực tế trong khi đang tích cực phát triển ứng dụng. Thay vào đó, hãy thiết lập Data Connect trình mô phỏng và thực hiện công việc phát triển trên trình mô phỏng này thay vì môi trường thực tế. Trình mô phỏng thiết lập một thực thể PGlite cục bộ hoạt động tương tự như một thực thể Postgres trực tiếp trên CloudSQL.

Tìm hiểu cách viết giản đồ và thao tác cho ứng dụng

Khi phát triển ứng dụng bằng Data Connect, việc thiết kế giản đồ và thao tác là một trong những nhiệm vụ phát triển đầu tiên và quan trọng nhất mà bạn sẽ hoàn thành.