איך מתחילים להשתמש ב-Firebase Data Connect באמצעות React

במדריך למתחילים הזה, תיצרו ותפרסו מסד נתונים קטן לדוגמה ותגשו אליו מחלק הקצה של React.

דרישות מוקדמות

כדי להשלים את המדריך למתחילים הזה, תצטרכו:

  • סביבת Node.js עם NPM.
  • חשבון Google.

מדריך

מדריך

1. אתחול הפרויקט

יוצרים ספרייה חדשה ומפעילים בה פרויקט Firebase. כשמופיעה בקשה, בוחרים באפשרויות הבאות:

  • יוצרים פרויקט חדש ב-Firebase.
  • אל תיצרו סכימה באמצעות Gemini (במדריך הזה תשתמשו בסכימה לדוגמה שכבר נוצרה).
  • יוצרים מכונה חדשה של Cloud SQL.
  • יוצרים תבנית React.
mkdir myproj ; cd myproj
npx -y firebase-tools@latest login --reauth
npx -y firebase-tools@latest init dataconnect

2. בדיקת ההגדרות לדוגמה של GraphQL

ב-Data Connect, מגדירים את כל הסכימות והפעולות של מסד הנתונים באמצעות GraphQL. כשאתם מאתחלים את הפרויקט, ה-CLI של Firebase יוצר כמה הגדרות לדוגמה כדי לעזור לכם להתחיל.

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
}
dataconnect/example/queries.gql (קטע)
query ListMovies @auth(level: PUBLIC) {
  movies {
    id
    title
    imageUrl
    genre
  }
}

3. פריסת הסכימות והפעולות

בכל פעם שמבצעים שינויים בסכימות של מסדי הנתונים, בשאילתות או במוטציות, צריך לפרוס אותם כדי שהשינויים יחולו על מסד הנתונים.

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

4. הוספת נתונים לדוגמה למסד הנתונים

נתוני ה-seed האלה יאפשרו לכם לראות משהו כשבודקים את האפליקציה לדוגמה. הערה: בשלב הזה אתם מריצים GraphQL שרירותי, וזה מותר למשימות ניהול.

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

5. יצירה של JavaScript client SDK

הפקודה הזו משתמשת בהגדרות GraphQL כדי ליצור ספריית JavaScript שמיועדת במיוחד למסד הנתונים שלכם, כולל הגדרות של סוגים. משתמשים בספרייה הזו באפליקציית הלקוח כדי לבצע את כל פעולות מסד הנתונים.

אפשר ליצור ספריות למספר פלטפורמות, כולל Kotlin ל-Android,‏ Swift ל-iOS ו-Flutter, על ידי הוספת הגדרות ל-connector.yaml.

npx -y firebase-tools@latest dataconnect:sdk:generate
‫React SDK שנוצר אוטומטית (קטע)
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.

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. כתיבת דוגמה ללקוח React

מחליפים את התוכן של web-app/src/App.jsx באפליקציית React הפשוטה הזו.

שימו לב שהאפליקציה משלימה את הגישה הנדרשת למסד הנתונים באמצעות פונקציה מתוך ה-SDK שנוצר. ה-SDK שנוצר עבור React משתמש ב-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. לאתר

מפעילים את שרת הפיתוח כדי לראות את האפליקציה לדוגמה בפעולה.

npm run dev

השלבים הבאים

כדאי לנסות את התוסף Data Connect VS Code

כשמפתחים באמצעות Data Connect, מומלץ מאוד להשתמש בתוסף Data Connect ל-VS Code. גם אם אתם לא משתמשים ב-Visual Studio Code כסביבת הפיתוח העיקרית שלכם, התוסף מספק כמה תכונות שהופכות את הפיתוח של סכימות ופעולות לנוח יותר:

  • שרת שפה של GraphQL, שמספק בדיקת תחביר והצעות להשלמה אוטומטית שספציפיות ל-Data Connect
  • לחצני CodeLens בשורה עם הקוד שמאפשרים לקרוא ולכתוב נתונים מקובצי הגדרת הסכימה, ולהריץ שאילתות ומוטציות מהגדרות הפעולה.
  • שמירה אוטומטית של ערכות ה-SDK שנוצרו מסונכרנות עם הגדרות GraphQL.
  • הגדרה פשוטה יותר של אמולטור מקומי.
  • פריסה פשוטה יותר בסביבת הייצור.

שימוש באמולטור Data Connect לפיתוח מקומי

במדריך הזה הראינו איך לפרוס סכימות ופעולות של Data Connect ישירות בסביבת הייצור, אבל סביר להניח שלא תרצו לבצע שינויים במסד הנתונים של סביבת הייצור בזמן שאתם מפתחים את האפליקציה. במקום זאת, מומלץ להגדיר את Data Connect האמולטור ולבצע את עבודת הפיתוח מולו ולא מול סביבת הייצור. האמולטור מגדיר מכונה מקומית של PGlite שמתנהגת באופן דומה למכונת Postgres פעילה ב-CloudSQL.

איך כותבים סכימות ופעולות לאפליקציה

כשמפתחים אפליקציות באמצעות Data Connect, עיצוב הסכימות והפעולות הוא אחת ממשימות הפיתוח הראשונות והחשובות ביותר שצריך להשלים.

  • Gemini במסוף Firebase הוא כלי AI שיכול ליצור סכימות מתיאור בשפה טבעית של האפליקציה שלכם. הכלי הזה יכול לעזור לכם להתחיל לעבוד במהירות, במיוחד אם מעולם לא עבדתם עם מסדי נתונים רלציוניים.Data Connect
  • לחלופין, אפשר לכתוב סכימות של מסדי נתונים, שאילתות ומוטציות ישירות באמצעות GraphQL. מתחילים בדף Design Data Connect schemas וממשיכים לדפים הבאים כדי ללמוד איך לכתוב פעולות.