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

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

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

מה אני יכול לעשות עם אמולטור Firebase Hosting?

אמולטור האחסון של Firebase מספק אמולציה מקומית בנאמנות גבוהה של שירותי אירוח, ומספק חלק ניכר מהפונקציונליות שנמצאת באירוח ייצור . אמולטור האחסון מאפשר לך:

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

בחר פרויקט Firebase

Firebase Local Emulator Suite מחקה מוצרים עבור פרויקט Firebase יחיד.

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

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

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

פרויקט Firebase אמיתי הוא פרויקט שיצרת והגדרת (ככל הנראה דרך מסוף Firebase).

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

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

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

הַדגָמָה

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

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

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

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

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

זרימת עבודה של אבות טיפוס ליבה

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

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

  2. מהשורש של ספריית הפרויקט המקומית שלך, הפעל את הפקודה הבאה:

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

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

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

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

"emulators": {
    // ...

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

צור אסימוני אימות עבור זרימות עבודה מתמשכות של אינטגרציה

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

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

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

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

מה הלאה?