שימוש באמולטור התוספים להערכת תוספים

לפני שמשתמשים במהדמ ה-Extensions עם האפליקציה, חשוב לוודא שמבינים את תהליך העבודה הכולל של Firebase Local Emulator Suite, ומתקינים ומגדירים את Local Emulator Suite ובודקים את פקודות ה-CLI שלו.

המדריך הזה גם מבוסס על ההנחה שאתם מכירים את Firebase Extensions ואיך להשתמש בהם באפליקציות Firebase.

מה אפשר לעשות עם המהדר של Extensions?

באמצעות המהדר של Extensions, אפשר להתקין ולנהל תוספים בסביבה מקומית בטוחה, להבין טוב יותר את היכולות שלהם ולצמצם את עלויות החיוב. במהלך ההרצה במהדורת ה-emulator, הפונקציות של התוסף פועלות באופן מקומי, כולל פונקציות שמופעלות על ידי אירועים ברקע באמצעות המהדורות של Cloud Firestore,‏ Realtime Database,‏ Cloud Storage for Firebase,‏ Authentication ו-Pub/Sub, ופונקציות שמופעלות על ידי Eventarc ושמוטמעות ב-Cloud Functions v2.

בחירת פרויקט ב-Firebase

ה-Firebase Local Emulator Suite מאפשר לדמות מוצרים לפרויקט Firebase יחיד.

כדי לבחור את הפרויקט שבו רוצים להשתמש, לפני שמפעילים את הסימולטורים, מריצים את הפקודה firebase use בספריית העבודה ב-CLI. לחלופין, תוכלו להעביר את הדגל --project לכל פקודת אמולטור.

Local Emulator Suite תומך בהדמיה של פרויקטים אמיתיים ופרויקטים דמוניים ב-Firebase.

סוג הפרויקט תכונות שימוש באמולטורים
ממשי

פרויקט Firebase אמיתי הוא פרויקט שיצרתם והגדרתם (סביר להניח באמצעות מסוף Firebase).

לפרויקטים אמיתיים יש משאבים פעילים, כמו מכונות של מסדי נתונים, קטגוריות אחסון, פונקציות או כל משאב אחר שמגדירים לאותו פרויקט ב-Firebase.

כשעובדים עם פרויקטים אמיתיים של Firebase, אפשר להריץ אמולטורים לכל אחד מהמוצרים הנתמכים או לכל המוצרים הנתמכים.

לגבי מוצרים שלא מעתיקים, האפליקציות והקוד יתקשרו עם המשאב הפעיל (מכונה של מסד נתונים, קטגוריה של אחסון, פונקציה וכו').

הדגמה

בפרויקט הדגמה ב-Firebase אין הגדרות אמיתיות של Firebase ואין משאבים פעילים. בדרך כלל אפשר לגשת לפרויקטים האלה דרך Codelabs או מדריכים אחרים.

מזהי פרויקטים של פרויקטים לדוגמה כוללים את הקידומת demo-.

כשעובדים עם פרויקטים לדוגמה ב-Firebase, האפליקציות והקוד שלכם מקיימים אינטראקציה עם אמוללטורים בלבד. אם האפליקציה תנסה לבצע אינטראקציה עם משאב שלא פועל בו אמולטור, הקוד ייכשל.

מומלץ להשתמש בפרויקטים לדוגמה כשהדבר אפשרי. ההטבות כוללות:

  • ההגדרה קלה יותר, כי ניתן להריץ את האמולטורים בלי ליצור פרויקט Firebase
  • בטיחות מוגברת, כי אם הקוד מפעיל בטעות משאבים ללא אמולציה (בייצור), אין סיכוי לשינוי בנתונים, לשימוש ולחיוב
  • תמיכה טובה יותר במצב אופליין, כי אין צורך לגשת לאינטרנט כדי להוריד את הגדרות ה-SDK.

התקנה והערכה של תוסף

קל להשתמש במהדמה Extensions כדי להעריך אם התוסף עומד בצרכים שלכם.

נניח שאתם רוצים להשתמש בתוסף Trigger Email‏ (firestore-send-email), אבל תהליך העבודה הבא רלוונטי לכל תוסף. כשמפעילים את Trigger Email באמצעות מכונות וירטואליות מקומיות, המערכת משתמשת באופן אוטומטי במכונות הווירטואליות Cloud Firestore ו-Cloud Functions.

כדי לבדוק תוסף באופן מקומי:

  1. מוסיפים את התוסף למניפסט המקומי של התוספים. מניפסט של תוספים הוא רשימת מופעים של תוספים וההגדרות שלהם.

    firebase ext:install --local firebase/firestore-send-email

    הפעלת הפקודה שלמעלה תגרום להצגת בקשה להגדרת הגרסה העדכנית ביותר של התוסף firebase/firestore-send-email ולשמירת ההגדרות במניפסט, אבל לא תפרוס את ההגדרות בפרויקט. למידע נוסף בנושא, ראו ניהול הגדרות של תוספים באמצעות מניפסטים

  2. מפעילים את 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 לבדיקה.

מה הלאה?