Firebase Data Connect מספק אמולטור מקומי ליצירת אב טיפוס מקצה לקצה, וכן תהליכי אינטגרציה רציפה (CI) ופיתוח רציף (CD):
- האמולטור של Data Connect יוצר אינטראקציה עם מכונה מקומית משולבת של מסד נתונים של PGLite, כדי לאפשר לכם ליצור אב טיפוס של שאילתות ומוטציות ולבדוק את קוד הלקוח בסביבה מקומית לחלוטין.
- אפשר להשתמש במהדורת המהפעלת של Data Connect גם לעבודה לא אינטראקטיבית. הוא מאפשר להריץ בדיקות אוטומטיות ומתאים לשימוש בתהליכי עבודה של CI/CD. האפשרות הזו שימושית כשהסכמות יציבות ואתם רוצים ליצור אב טיפוס ולבדוק קוד מצד הלקוח.
המדריך הזה מכיל מידע מפורט יותר על ההתקנה והשימוש במהדורת האדמין בהשוואה למדריך למתחילים.
התקנת האמולטור של Data Connect
לפני שמתקינים את Local Emulator Suite כדי להשתמש במהדמה של Data Connect, צריך:
- Node.js מגרסה 18.0 ואילך.
התקנת ה-CLI של Firebase והגדרת ספריית הפרויקט
מתקינים את ה-CLI של Firebase בהתאם למדריך ההתקנה. חשוב לעדכן את האפליקציה באופן קבוע, כי הסימולטור של Data Connect נמצא בפיתוח פעיל עם תיקוני באגים ותכונות חדשות.
אם עדיין לא עשיתם זאת, צריך לאתחל את ספריית העבודה הנוכחית כפרויקט Firebase, תוך ציון המוצרים שבהם רוצים להשתמש:
firebase init
הגדרה או שינוי של ההגדרות של Local Emulator Suite
אם הפעלתם את האמולטור של Data Connect מהתוסף של Firebase ל-VS Code, האמולטור הותקן בשבילכם, אם היה צורך בכך.
אפשר להשתמש ב-CLI של Firebase כדי להתקין את האמולטור באופן ידני יחד עם רכיבים נבחרים אחרים של Local Emulator Suite. הפקודה הזו מפעילה אשף הגדרות שמאפשר לבחור את הסימולטורים הרצויים, להוריד את הקבצים הבינאריים המתאימים של הסימולטורים ולהגדיר את יציאות הסימולטורים אם הגדרות ברירת המחדל לא מתאימות.
firebase init emulators
אחרי שמתקינים אמולטור, לא מתבצעות בדיקות עדכונים ולא מתבצעות הורדות אוטומטיות נוספות עד שמעדכנים את גרסת ה-CLI של Firebase.
בחירת פרויקט ב-Firebase
בתהליך ההגדרה, ה-CLI של Firebase יבקש מכם לבחור פרויקט Firebase או ליצור פרויקט חדש. אם בוחרים פרויקט קיים שהגדרתם באמצעות Data Connect במסוף Firebase, תופיע ההצעה לשימוש בתצורה שבחרתם שם.
הגדרת האמולטור
הגדרת האמולטור
כשמריצים את תהליך firebase init
, מקבלים הנחיות לגבי אפשרויות ההגדרה של המהדר.
כמו באמולטורים אחרים ב-Local Emulator Suite, הפרמטרים של ההגדרות מאוחסנים בקובצי הפרויקט המקומיים.
- קובץ
firebase.json
מכיל הקצאות של יציאות למהדר.- המפתח
emulators:ui
לא רלוונטי למהדר Data Connect.
- המפתח
עבודה עם משאבי Data Connect מקומיים ומשאבי ייצור
אם אתם רוצים לוודא שלא תשפיעו על משאבי הייצור, צריך להגדיר את הפרמטר demo-
projectID או לוודא שקוד הלקוח מצויד בכלים לחיבור למהדר, כפי שמתואר בקטע מאוחר יותר.
הפעלת האמולטור
אם אתם מריצים את הסימולטור באופן לא אינטראקטיבי, למשל בתהליכי עבודה של CI/CD, מפעילים אותו עם האפשרות exec
.
firebase emulators:exec ./path/to/test-script.sh
אם אתם משלבים שאילתות ומוטציות שהוגדרו מראש בקוד הלקוח, ומשתמשים במהדורת הדמיה במיוחד לצורך בדיקת לקוחות, תוכלו להשתמש באפשרות start
לעבודה אינטראקטיבית. אפשר גם להפעיל את הסימולטור מהתוסף של VS Code.
firebase emulators:start
הוספת רכיבים לקוד הלקוח כדי לדבר עם הסימולטור
מגדירים את ההגדרות או את כיתות הבדיקה באפליקציה כך שייצרו אינטראקציה עם המהדרר Data Connect באופן הבא.
JavaScript
import { initializeApp } from "firebase/app"; import { connectorConfig } from "@name-of-package"; import { connectDataConnectEmulator, getDataConnect } from 'firebase/data-connect'; // TODO: Replace the following with your app's Firebase project configuration const firebaseConfig = { //... }; const app = initializeApp(firebaseConfig); const dataConnect = getDataConnect(app, connectorConfig); connectDataConnectEmulator(dataConnect, "localhost", 9399); // Make calls from your app
Kotlin Android
val connector = MoviesConnector.instance // Connect to the emulator on "10.0.2.2:9399" connector.dataConnect.useEmulator() // (Alternatively) if you're running your emulator on non-default port: connector.dataConnect.useEmulator(port = 9999) // Make calls from your app
iOS
let connector = DataConnect.dataConnect(DefaultConnectorClient.connectorConfig) // Connect to the emulator on "127.0.0.1:9399" connector.useEmulator() // (alternatively) if you're running your emulator on non-default port: connector.useEmulator(port: 9999) // Make calls from your app
שימוש במהדר לצורכי בדיקה ואינטגרציה רציפה
הפעלת קובצי אימג' של Local Emulator Suite בקונטיינרים
התקנה והגדרה של Local Emulator Suite באמצעות קונטיינרים במסגרת הגדרת CI רגילה היא פשוטה.
יש כמה בעיות שכדאי לשים לב אליהן:
- קובצי ה-binary של האמולטור מותקנים ומאוחסנים במטמון ב-
~/.cache/firebase/emulators/
. מומלץ להוסיף את הנתיב הזה להגדרת המטמון של CI כדי למנוע הורדות חוזרות. - אם אין לכם קובץ
firebase.json
במאגר, תצטרכו להוסיף ארגומנט לשורת הפקודה של הפקודהemulators:start
אוemulators:exec
כדי לציין אילו מכונות וירטואליות צריך להפעיל. לדוגמה,--only dataconnect
.
ניקוי מסד הנתונים בין בדיקות
כדי לאפס את סביבות הבדיקה בין ריצות, מומלץ ב-Firebase:
- כתיבת מוטציות ייעודיות לטיפול בבעיות הבאות:
- במהלך ההגדרה, מאכלסים מכונה מקומית של מסד נתונים בנתונים מקוריים.
- בניתוק, מוחקים נתונים ששונו ממכונת מסד הנתונים שלאחר הבדיקה.
ההבדל בין המהדורה לבדיקה של Data Connect לבין המהדורה בסביבת הייצור
במהלך ההדמיה ב-Data Connect, מתבצעת סימולציה של תכונות רבות של המוצר בצד השרת. עם זאת, יש כמה חריגים שחשוב לדעת עליהם:
- הגרסה וההגדרה המפורטת של PGLite עשויות להיות שונות מהגרסה של מכונה של Cloud SQL בסביבת הייצור.
- אם אתם משתמשים במהדר כדי לפתח באמצעות השילוב של Data Connect עם pgvector ו-Vertex API, הקריאות ל-Cloud Vertex API מתבצעות ישירות ולא דרך השילוב של Vertex ב-Cloud SQL. עם זאת, הקריאות ל-API בסביבת הייצור עדיין מתבצעות, כלומר עליכם להשתמש בפרויקט Firebase אמיתי, אי אפשר להשתמש בפרויקט
demo-
ותצברו עלויות של Vertex API.