לפני שמשתמשים באמולטור Extensions עם האפליקציה, חשוב לוודא שמבינים את תהליך העבודה הכולל של Firebase Local Emulator Suite, שמתקינים ומגדירים את Local Emulator Suite ושמעיינים בפקודות ה-CLI שלו.
בנוסף, אנחנו מניחים שאתם מכירים את Firebase Extensions ושיודעים איך להשתמש בהם באפליקציות שלכם ב-Firebase.
מה אפשר לעשות עם האמולטור Extensions?
באמצעות Extensionsהאמולטור, אתם יכולים להתקין תוספים ולנהל אותם בסביבה מקומית בטוחה, ולהבין טוב יותר את היכולות שלהם תוך צמצום עלויות החיוב. האמולטור מריץ את הפונקציות של התוסף באופן מקומי, כולל פונקציות שמופעלות על ידי אירועים ברקע באמצעות האמולטורים של Cloud Firestore, Realtime Database, Cloud Storage for Firebase, Authentication ו-Pub/Sub, ופונקציות שמופעלות על ידי Eventarc שהוטמעו ב-Cloud Functions גרסה 2.
בחירת פרויקט ב-Firebase
Firebase Local Emulator Suite מדמה מוצרים לפרויקט Firebase יחיד.
כדי לבחור את הפרויקט שבו רוצים להשתמש, לפני שמפעילים את האמולטורים, מריצים את הפקודה firebase use
בספריית העבודה. אפשר גם להעביר את הדגל --project
לכל פקודת אמולטור.
Local Emulator Suite תומך באמולציה של פרויקטים אמיתיים ב-Firebase ושל פרויקטים לדוגמה.
סוג הפרויקט | תכונות | שימוש באמולטורים |
---|---|---|
Real |
פרויקט Firebase אמיתי הוא פרויקט שיצרתם והגדרתם (לרוב דרך Firebaseהמסוף). בפרויקטים אמיתיים יש משאבים פעילים, כמו מופעים של מסדי נתונים, קטגוריות אחסון, פונקציות או כל משאב אחר שהגדרתם לפרויקט הזה ב-Firebase. |
כשעובדים עם פרויקטים אמיתיים ב-Firebase, אפשר להפעיל אמולטורים לכל המוצרים הנתמכים או לחלק מהם. לגבי כל המוצרים שאתם לא מדמים, האפליקציות והקוד שלכם יפעלו באינטראקציה עם משאב פעיל (מופע של מסד נתונים, קטגוריית אחסון, פונקציה וכו'). |
הדגמה |
לפרויקט הדגמה ב-Firebase אין הגדרה אמיתית של Firebase ואין לו משאבים פעילים. בדרך כלל ניגשים לפרויקטים האלה באמצעות הדרכות של Codelab או מדריכים אחרים. מזהי פרויקטים של פרויקטים לדוגמה מתחילים בקידומת |
כשעובדים עם הדגמות של פרויקטים ב-Firebase, האפליקציות והקוד מקיימים אינטראקציה רק עם אמולטורים. אם האפליקציה מנסה ליצור אינטראקציה עם משאב שלא מופעל בו אמולטור, הקוד ייכשל. |
מומלץ להשתמש בפרויקטים לדוגמה ככל האפשר. ההטבות כוללות:
- ההגדרה קלה יותר, כי אפשר להריץ את האמולטורים בלי ליצור פרויקט Firebase
- רמת בטיחות גבוהה יותר, כי אם הקוד שלכם מפעיל בטעות משאבים שלא מבוססים על אמולציה (משאבי ייצור), אין סיכוי לשינוי נתונים, לשימוש ולחיוב
- תמיכה טובה יותר במצב אופליין, כי אין צורך לגשת לאינטרנט כדי להוריד את הגדרות ה-SDK.
התקנה והערכה של תוסף
קל להשתמש באמולטור Extensions כדי להעריך אם תוסף מסוים עונה על הצרכים שלכם.
נניח שאתם רוצים להשתמש בתוסף Trigger Email (firestore-send-email
), אבל התהליך הבא מתאים לכל תוסף. כשמריצים את הפונקציה Trigger Email עם אמולטורים מקומיים, היא משתמשת אוטומטית באמולטורים Cloud Firestore ו-Cloud Functions.
כדי להעריך תוסף באופן מקומי:
מוסיפים את התוסף למניפסט של התוספים המקומיים. מניפסט של תוסף הוא רשימה של מופעי תוספים וההגדרות שלהם.
firebase ext:install --local firebase/firestore-send-email
הפעלת הפקודה שלמעלה תציג בקשה להגדיר את הגרסה האחרונה של התוסף
firebase/firestore-send-email
ולשמור את ההגדרה במניפסט, אבל היא לא תפרוס את ההגדרה בפרויקט. מידע נוסף בנושא זמין במאמר ניהול הגדרות של תוספים באמצעות קובצי מניפסטמתחילים את Local Emulator Suite כרגיל.
firebase emulators:start
עכשיו, באמצעות מופע התוסף firestore-send-email
שמופיע במניפסט, Local Emulator Suite יוריד את קוד המקור של התוסף הזה אל ~/.cache/firebase/extensions
. אחרי שהמקורות יורדו, Local Emulator Suite יתחיל לפעול ותוכלו להפעיל כל אחת מהפונקציות של התוסף שמופעלות ברקע ולחבר את האפליקציה שלכם אל Local Emulator Suite כדי לבדוק את השילוב שלהן באפליקציה.
אפשר להשתמש ב-Emulator Suite UI כדי להוסיף נתונים לאוסף מסמכי האימייל ולהגדיר משאבי קצה עורפיים אחרים, בהתאם לדרישות של התוסף Trigger Email.
לחלופין, בסביבות בדיקה לא אינטראקקטיביות כמו תהליכי עבודה של שילוב מתמשך, אפשר לכתוב סקריפט בדיקה להערכת התוסף. הסקריפט יבצע, בין היתר, את השלבים הבאים: יאכלס את נתוני Cloud Firestore הנדרשים ויפעיל פונקציות. לאחר מכן מפעילים את Local Emulator Suite כדי להריץ את סקריפט הבדיקה:
firebase emulators:exec my-test.sh
מה ההבדל בין בדיקה באמצעות האמולטור Extensions לבין בדיקה בסביבת הייצור
האמולטור של Extensions מאפשר לבדוק תוספים בצורה שדומה מאוד לחוויה בסביבת הייצור. עם זאת, יש כמה הבדלים בהתנהגות של הסביבה בהשוואה לסביבת הייצור.
Cloud IAM
הכלים לאמולטור מקומי ב-Firebase לא מנסים לשכפל או להתייחס להתנהגות שקשורה ל-IAM לצורך הפעלה. האמולטורים פועלים בהתאם לכללי האבטחה שסופקו ב-Firebase, אבל במצבים שבהם בדרך כלל נעשה שימוש ב-IAM, למשל כדי להגדיר חשבון שירות שמפעיל את Cloud Functions וכך גם את ההרשאות, אי אפשר להגדיר את האמולטור והוא ישתמש בחשבון שזמין באופן גלובלי במחשב של המפתח, בדומה להרצה ישירה של סקריפט מקומי.
הגבלה על סוג הטריגר
בשלב הזה, Firebase Local Emulator Suite תומך רק בפונקציות שמופעלות על ידי בקשות HTTP, בטריגרים של אירועים מותאמים אישית של Eventarc לתוספים ובפונקציות שמופעלות על ידי אירועים ברקע עבור Cloud Firestore, Realtime Database, Cloud Storage for Firebase, Authentication ו-Pub/Sub. כדי להעריך תוספים שמשתמשים בסוגים אחרים של פונקציות מופעלות, צריך להתקין את התוסף בפרויקט Firebase לצורך בדיקה.
מה הלאה?
- כדי לצפות באוסף של סרטונים ולקבל דוגמאות מפורטות, אפשר לעבור אל פלייליסט ההדרכה בנושא Firebase Emulators.