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-
או לוודא שקוד הלקוח אינסטרומנטלי להתחבר לאמולטור, כמו שמוסבר בהמשך.
הפעלת האמולטור
אם אתם מריצים את הסימולטור באופן לא אינטראקטיבי, למשל בתהליכי עבודה של 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
שימוש באמולטור לבדיקה ולאינטגרציה רציפה (CI)
הפעלת קובצי אימג' של 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 בסביבת הייצור.
- אם אתם משתמשים באמולטור כדי לפתח עם השילוב של Data Connect עם pgvector ו-Vertex API, הקריאות ל-Cloud Vertex API נשלחות ישירות ולא דרך שילוב Vertex של Cloud SQL. עם זאת, הקריאות ל-API בסביבת הייצור עדיין מתבצעות, כלומר עליכם להשתמש בפרויקט Firebase אמיתי, אי אפשר להשתמש בפרויקט
demo-
ותצברו עלויות של Vertex API.