Firebase Data Connect מספק לכם אמולטור מקומי ליצירת אב טיפוס מקצה לקצה, וגם זרימות של אינטגרציה רציפה (CI) ופריסה רציפה (CD):
- האמולטור Data Connect מתקשר עם מופע מקומי של מסד נתונים משולב של PGLite כדי לאפשר לכם ליצור אב טיפוס של שאילתות ומוטציות ולבדוק קוד לקוח בסביבה מקומית לחלוטין.
- אפשר להשתמש באמולטור Data Connect גם לעבודה לא אינטראקטיבית. הוא מאפשר להריץ בדיקות אוטומטיות ומתאים לשימוש בתהליכי עבודה של CI/CD. האפשרות הזו שימושית כשהסכימות יציבות ורוצים ליצור אב טיפוס ולבדוק קוד בצד הלקוח.
במדריך הזה מוסבר בפירוט איך להתקין את האמולטור ואיך להשתמש בו, בניגוד למדריך למתחילים.
התקנה של אמולטור Data Connect
לפני שמתקינים את Local Emulator Suite כדי להשתמש באמולטור Data Connect, צריך:
- Node.js מגרסה 18.0 ואילך.
התקנת Firebase CLI והגדרת ספריית פרויקט
מתקינים את Firebase CLI לפי מדריך ההתקנה. חשוב לעדכן באופן קבוע, כי אמולטור Data Connect נמצא בפיתוח פעיל עם תיקוני באגים ותכונות חדשות.
אם עדיין לא עשיתם זאת, צריך לאתחל את ספריית העבודה הנוכחית כפרויקט Firebase, ולפעול לפי ההנחיות כדי לציין באילו מוצרים רוצים להשתמש:
firebase init
הגדרת ההגדרה Local Emulator Suite או שינוי שלה
אם הפעלתם את האמולטור Data Connect מתוסף Firebase VS Code, האמולטור הותקן בשבילכם, אם היה צורך בכך.
אפשר להשתמש ב-CLI של Firebase כדי להתקין ידנית את האמולטור יחד עם רכיבים נבחרים אחרים של Local Emulator Suite. הפקודה הזו מפעילה אשף הגדרות שמאפשר לבחור אמולטורים שמעניינים אתכם, להוריד את קובצי האמולטור הבינאריים המתאימים ולהגדיר יציאות אמולטור אם ברירות המחדל לא מתאימות.
firebase init emulatorsאחרי שמורידים אמולטור, לא מתבצעות בדיקות עדכון ולא מתבצעות הורדות אוטומטיות נוספות עד לעדכון של גרסת Firebase CLI.
בחירת פרויקט ב-Firebase
בתהליך ההגדרה, ממשק Firebase CLI מבקש לבחור או ליצור פרויקט ב-Firebase. אם בוחרים פרויקט קיים שהגדרתם עם Data Connect במסוף Firebase, תופיע הצעה להשתמש בהגדרה שבחרתם שם.
הגדרת האמולטור
הגדרת האמולטור
הפעלת התהליך firebase init תדריך אתכם לגבי אפשרויות ההגדרה של האמולטור.
בדומה לאמולטורים אחרים ב-Local Emulator Suite, פרמטרים של הגדרות אישיות מאוחסנים בקבצים מקומיים של הפרויקט.
- הקובץ
firebase.jsonמכיל הקצאות של יציאות לאמולטור.- המפתח
emulators:uiלא חל על האמולטור Data Connect.
- המפתח
עבודה עם משאבים מקומיים ומשאבי ייצור של Data Connect
כדי לוודא שלא תשפיעו על משאבי הייצור, צריך להגדיר projectID או לוודא שקוד הלקוח מוגדר להתחבר לאמולטור, כמו שמוסבר בקטע בהמשך.demo-
הפעלת האמולטור
אם מריצים את האמולטור באופן לא אינטראקטיבי, למשל בתהליכי עבודה של 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 טיפוסית הן פשוטות.
כמה דברים שחשוב לזכור:
- קובצי ההפעלה של האמולטור מותקנים ונשמרים במטמון בנתיב
~/.cache/firebase/emulators/. כדי להימנע מהורדות חוזרות, מומלץ להוסיף את הנתיב הזה להגדרת המטמון של CI. - אם אין לכם קובץ
firebase.jsonבמאגר, אתם צריכים להוסיף ארגומנט של שורת פקודה לפקודהemulators:startאוemulators:execכדי לציין אילו אמולטורים צריך להפעיל. לדוגמה,--only dataconnect.
ניקוי מסד הנתונים בין בדיקות
כדי לאפס את סביבות הבדיקה בין הרצות, מומלץ ב-Firebase:
- כתיבת מוטציות ייעודיות לטיפול בפעולות הבאות:
- במהלך ההגדרה, מאכלסים מופע של מסד נתונים מקומי בנתוני התחלה.
- בשלב הניקוי, מוחקים את הנתונים ששונו ממופע מסד הנתונים אחרי הבדיקה.
ההבדלים בין Data Connect האמולטור לבין הסביבה הפרודקטיבית
האמולטור Data Connect מדמה הרבה תכונות של המוצר בצד השרת. עם זאת, יש כמה חריגים שכדאי להכיר:
- הגרסה וההגדרה המפורטת של PGLite עשויות להיות שונות מהגרסה של מופע Cloud SQL בסביבת הייצור.
- אם אתם משתמשים באמולטור כדי לפתח באמצעות השילוב של pgvector ו-Vertex API של Data Connect, הקריאות ל-Cloud Vertex API מתבצעות ישירות, ולא דרך השילוב של Vertex עם Cloud SQL. עם זאת, עדיין מתבצעות קריאות ל-API של סביבת הייצור, כלומר אתם צריכים להשתמש בפרויקט Firebase אמיתי, לא תוכלו להשתמש בפרויקט
demo-ותחויבו על השימוש ב-Vertex API.