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

לפני שמשתמשים במהדמ ה-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 יחיד.

כדי לבחור את הפרויקט לשימוש, לפני שמפעילים את האמולטורים, עוברים להרצת ה-CLI firebase use בספריית העבודה שלך. לחלופין, אפשר להעביר הדגל --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 לבדיקה.

מה הלאה?