במדריך למתחילים הזה תלמדו איך לפתח את Firebase Data Connect באפליקציה באופן מקומי, בלי להגדיר מכונה של SQL בסביבת הייצור. תצטרכו:
- מוסיפים את Firebase Data Connect לפרויקט Firebase.
- הגדרת סביבת פיתוח שכוללת תוסף של Visual Studio Code לעבודה עם מכונה מקומית.
- לאחר מכן נסביר איך:
- יצירת סכימה לאפליקציית סרטים
- מגדירים שאילתות ומוטציות שישמשו באפליקציה
- בדיקת השאילתות והמוטציות באמצעות נתונים לדוגמה במהלך בדיקה במהדורת אימולטור מקומית
- יצירת ערכות SDK עם סוגים מוגדרים ושימוש בהן באפליקציה
- פריסה של הסכימה, השאילתות והנתונים הסופיים בענן (אופציונלי, עם שדרוג לתוכנית Blaze).
בחירת תהליך פיתוח מקומי
ב-Data Connect יש שתי דרכים להתקין כלי פיתוח ולעבוד באופן מקומי.
דרישות מוקדמות
כדי להשתמש במדריך למתחילים הזה, צריך את הדברים הבאים:
- Visual Studio Code.
- התקנה של Node.js באמצעות nvm-windows ל-Windows או nvm ל-macOS או ל-Linux.
- פרויקט Firebase. אם עדיין לא יצרתם חשבון, תוכלו לעשות זאת במסוף Firebase.
הגדרת סביבת הפיתוח
- יוצרים ספרייה חדשה לפרויקט המקומי.
- פותחים את VS Code בספרייה החדשה.
- מתקינים את התוסף Firebase Data Connect מ-Visual Studio Code Marketplace.
הגדרת ספריית הפרויקט
כדי להגדיר את הפרויקט המקומי, צריך לאתחל את ספריית הפרויקט. בחלון ה-IDE, לוחצים על סמל Firebase בחלונית הימנית כדי לפתוח את ממשק המשתמש של התוסף Data Connect ל-VS Code:
- לוחצים על הלחצן כניסה באמצעות חשבון Google.
- לוחצים על הלחצן Connect a Firebase project ובוחרים את הפרויקט שיצרתם קודם במסוף.
- לוחצים על הלחצן Run firebase init.
לוחצים על הלחצן Start emulators.
יצירת סכימה
בספריית הפרויקט ב-Firebase, בקובץ /dataconnect/schema/schema.gql
, מתחילים להגדיר סכימה של GraphQL בנושא סרטים.
סרט
ב-Data Connect, שדות GraphQL ממופים לעמודות. הסרט כולל את id
,
title
, imageUrl
וגם genre
. Data Connect מזהה סוגי נתונים בסיסיים: String
ו-UUID
.
מעתיקים את קטע הקוד הבא או מסירים את ההערות מהשורות המתאימות בקובץ.
# By default, a UUID id key will be created by default as primary key.
# If you want to specify a primary key, say title, which you can do through
# the @table(key: "title") directive
type Movie @table {
id: UUID! @default(expr: "uuidV4()")
title: String!
imageUrl: String!
genre: String
}
MovieMetadata
מעתיקים את קטע הקוד הבא או מסירים את ההערות מהשורות המתאימות בקובץ.
# Movie - MovieMetadata is a one-to-one relationship
type MovieMetadata @table {
# This time, we omit adding a primary key because
# you can rely on Data Connect to manage it.
# @unique indicates a 1-1 relationship
movie: Movie! @unique
# movieId: UUID <- this is created by the above reference
rating: Float
releaseYear: Int
description: String
}
שימו לב שהשדה movie
ממופה לסוג Movie
.
Data Connect מבינה שמדובר בקשר בין Movie
לבין MovieMetadata
, ותנהל את הקשר הזה בשבילך.
מידע נוסף על סכימות של Data Connect זמין במסמכי התיעוד
הוספת נתונים לטבלאות
בחלונית העריכה של סביבת הפיתוח המשולבת יופיעו לחצני CodeLens מעל סוגי GraphQL ב-/dataconnect/schema/schema.gql
. אפשר להשתמש בלחצנים Add data (הוספת נתונים) ו-Run (Local) (הפעלה (מקומית)) כדי להוסיף נתונים למסד הנתונים המקומי.
כדי להוסיף רשומות לטבלאות Movie
ו-MovieMetadata
:
- ב-
schema.gql
, לוחצים על הלחצן Add data מעל הצהרת הסוגMovie
.
- בקובץ
Movie_insert.gql
שנוצר, מקודדים את הנתונים של שלושת השדות. - לוחצים על הלחצן Run (Local).
- חוזרים על השלבים הקודמים כדי להוסיף רשומה לטבלה
MovieMetadata
, ומספקים את הערך שלid
של הסרט בשדהmovieId
, כפי שמופיע בהנחיה במונטיזציה (mutation) שנוצרה שלMovieMetadata_insert
.
כדי לוודא שהנתונים נוספו במהירות:
- חזרה ב-
schema.gql
, לוחצים על הלחצן Read data מעל להצהרת הטיפוסMovie
. - בקובץ
Movie_read.gql
שנוצר, לוחצים על הלחצן Run (Local) כדי להריץ את השאילתה.
מידע נוסף על מוטציות של Data Connect זמין במסמכי התיעוד
הגדרת השאילתה
עכשיו מגיע החלק הכי כיף: נגדיר את השאילתות שתצטרכו באפליקציה. כמפתחים, אתם רגילים לכתוב שאילתות SQL ולא שאילתות GraphQL, ולכן יכול להיות שבהתחלה זה ייראה לכם קצת שונה.
עם זאת, GraphQL הוא מצומצם הרבה יותר ומאובטח יותר מבחינת סוגים מ-SQL גולמי. בנוסף, התוסף שלנו ל-VS Code מקל על חוויית הפיתוח.
מתחילים לערוך את הקובץ /dataconnect/connector/queries.gql
. כדי לקבל את כל הסרטים, צריך להשתמש בשאילתה כזו.
# File `/dataconnect/connector/queries.gql`
# @auth() directives control who can call each operation.
# Anyone should be able to list all movies, so the auth level is set to PUBLIC
query ListMovies @auth(level: PUBLIC) {
movies {
id
title
imageUrl
genre
}
}
מריצים את השאילתה באמצעות הלחצן של CodeLens שנמצא בקרבת מקום.
תכונה מעניינת מאוד היא היכולת להתייחס ליחסים של מסד הנתונים כגרף. מכיוון שלרשומה MovieMetadata
יש שדה movie
שמפנה לסרט, אפשר להטמיע את השדה ולקבל מידע על פרטי הסרט. כדאי לנסות להוסיף את הסוג שנוצר movieMetadata_on_movie
לשאילתה ListMovies
.
query ListMovies @auth(level: PUBLIC) {
movies {
id
title
imageUrl
genre
movieMetadata_on_movie {
rating
}
}
}
מידע נוסף על שאילתות של Data Connect זמין במסמכי התיעוד
יצירת ערכות SDK ושימוש בהן באפליקציה
בחלונית הימנית של סביבת הפיתוח המשולבת, לוחצים על סמל Firebase כדי לפתוח את ממשק המשתמש של התוסף Data Connect ל-VS Code:
- לוחצים על הלחצן Add SDK to app (הוספת ה-SDK לאפליקציה).
בתיבת הדו-שיח שמופיעה, בוחרים ספרייה שמכילה את הקוד של האפליקציה. Data Connect. קוד ה-SDK ייוצר ויישמר שם.
בוחרים את פלטפורמת האפליקציה, שימו לב שקוד ה-SDK נוצר באופן מיידי בתיקייה שנבחרה.
איך משתמשים ב-SDK שנוצר כדי להפעיל שאילתות ומוטציות מאפליקציות לקוח (אינטרנט, Android, iOS, Flutter).
פריסה של הסכימה והשאילתה בסביבת הייצור
אחרי שתסיימו את ההגדרה המקומית באפליקציה, תוכלו לפרוס את הסכימה, הנתונים והשאילתות בענן. כדי להגדיר מכונה של Cloud SQL, תצטרכו תוכנית Blaze.
עוברים לקטע Data Connect במסוף Firebase ויוצרים מכונה של Cloud SQL לניסיון בחינם.
ב-Terminal המובנה ב-IDE, מריצים את הפקודה
firebase init dataconnect
ובוחרים את Region/Service ID שיצרתם עכשיו במסוף.בוחרים באפשרות 'Y' כשמופיעה ההודעה 'File dataconnect/dataconnect.yaml already exists, Overwrite?'.
בממשק המשתמש של התוסף ל-VS Code, לוחצים על הלחצן פריסה בסביבת הייצור.
אחרי הפריסה, עוברים למסוף Firebase כדי לוודא שהסכימה, הפעולות והנתונים הועלאו לענן. אמורה להיות לכם אפשרות להציג את הסכימה ולהריץ את הפעולות במסוף. המכונה של Cloud SQL for PostgreSQL תתעדכן עם הסכימה והנתונים שנוצרו והופעלו.
השלבים הבאים
בודקים את הפרויקט שנפרס ומכירים כלים נוספים:
- הוספת נתונים למסד הנתונים, בדיקה ושינוי של הסכימות ומעקב אחרי שירות Data Connect במסוף Firebase.
מידע נוסף זמין במסמכי התיעוד. לדוגמה, אחרי שמשלימים את המדריך למתחילים:
- מידע נוסף על פיתוח של סכימות, שאילתות ומוטציות
- מידע נוסף על יצירת ערכות SDK ללקוח ועל קריאה לשאילתות ולמוטציות מקודק הלקוח ל-אינטרנט, ל-Android, ל-iOS ול-Flutter.