יצירת אב טיפוס ובדיקה של אפליקציות אינטרנט באמצעות אמולטור האירוח של Firebase

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

חשוב גם להכיר את התכונות ואת תהליך ההטמעה עבור Firebase Hosting. מתחילים עם מבוא ל-Firebase Hosting.

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

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

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

בחירת פרויקט 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.

תהליך העבודה המרכזי ליצירת אב טיפוס

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

  1. (אופציונלי) כברירת מחדל, האפליקציה שמתארחת באופן מקומי מקיימת אינטראקציה עם תוכן מציאותי, לא emulated, לא משאבי הפרויקט (פונקציות, מסד נתונים, כללים וכו'). במקום זאת, אפשר לקשר את האפליקציה לשימוש במשאבי פרויקטים הדמיים שהגדרתם. לקבלת מידע נוסף: Realtime Database | Cloud Firestore | Cloud Functions

  2. ברמה הבסיסית (root) של ספריית הפרויקט המקומית, מריצים את הפקודה הבאה:

    firebase emulators:start
  3. פותחים את אפליקציית האינטרנט בכתובת ה-URL המקומית שהוחזרה על ידי ה-CLI (בדרך כלל) http://localhost:5000).

  4. כדי לעדכן את השינויים בכתובת ה-URL המקומית, צריך לרענן את הדפדפן.

בדיקה ממכשירים מקומיים אחרים

כברירת מחדל, האמולטורים מגיבים רק לבקשות של localhost. הזה המשמעות היא שתוכלו לגשת לתוכן המתארח בדפדפן, אבל לא ממכשירים אחרים ברשת. אם רוצים לבדוק ממכשירים מקומיים אחרים, צריך להגדיר את firebase.json כך:

"emulators": {
    // ...

    "hosting": {
      "port": 5000,
      "host": "0.0.0.0"
    }
  }

יצירת אסימוני אימות לתהליכי עבודה של אינטגרציה רציפה (CI)

אם תהליכי העבודה של האינטגרציה הרציפה מסתמכים על אירוח ב-Firebase, תצטרך להתחבר באמצעות אסימון כדי להפעיל את firebase emulators:exec. אמולטורים אחרים לא מצריכים התחברות.

כדי ליצור אסימון, מריצים את הפקודה firebase login:ci בסביבה המקומית. הזה שאין לבצע מתוך מערכת CI. פועלים לפי ההוראות לביצוע אימות. צריך לבצע את השלב הזה רק פעם אחת לכל פרויקט, כי האסימון יהיה תקף בכל גרסאות ה-build. יש להתייחס לאסימון כמו לסיסמה; לוודא הוא נשמר בסוד.

אם סביבת ה-CI מאפשרת לציין משתני סביבה משמש בסקריפטים של ה-build, פשוט ליצור משתנה סביבה שנקרא FIREBASE_TOKEN, שהערך שלו הוא המחרוזת של אסימון הגישה. Firebase CLI קולט באופן אוטומטי את הסביבה FIREBASE_TOKEN והאמולטורים יתחילו כמו שצריך.

כחלופה אחרונה, אפשר פשוט לכלול את האסימון בסקריפט ה-build, אבל חשוב לוודא שלצדדים לא מהימנים אין גישה. בשביל הקוד הזה גישה, אפשר להוסיף את --token "YOUR_TOKEN_STRING_HERE" הפקודה firebase emulators:exec.

מה הלאה?