לפני שמשתמשים באמולטור 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 בספריית העבודה ב-CLI. אפשר גם להעביר את הדגל --project לכל פקודה של אמולטור.
Local Emulator Suite תומך באמולציה של פרויקטים אמיתיים ב-Firebase ושל פרויקטים לדוגמה.
| סוג הפרויקט | תכונות | שימוש עם אמולטורים |
|---|---|---|
| Real |
פרויקט Firebase אמיתי הוא פרויקט שיצרתם והגדרתם (ברוב המקרים דרך Firebaseהמסוף). בפרויקטים אמיתיים יש משאבים פעילים, כמו מופעים של מסדי נתונים, קטגוריות אחסון, פונקציות או כל משאב אחר שהגדרתם לפרויקט הזה ב-Firebase. |
כשעובדים עם פרויקטים אמיתיים ב-Firebase, אפשר להפעיל אמולטורים לכל המוצרים הנתמכים או לחלק מהם. לכל המוצרים שאתם לא מדמים, האפליקציות והקוד שלכם יפעלו עם משאב פעיל (מופע של מסד נתונים, קטגוריית אחסון, פונקציה וכו'). |
| הדגמה |
לפרויקט הדגמה ב-Firebase אין הגדרה אמיתית של Firebase ואין משאבים פעילים. בדרך כלל ניגשים לפרויקטים האלה באמצעות סדנאות קוד או מדריכים אחרים. מזהי פרויקטים של פרויקטים לדוגמה מתחילים בקידומת |
כשעובדים עם הדגמות של פרויקטים ב-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.