לפני שמתחילים ליצור אב טיפוס ולבדוק את אפליקציית האינטרנט באמצעות האמולטור Firebase Hosting, חשוב להבין את תהליך העבודה הכולל של Firebase Local Emulator Suite, להתקין ולהגדיר את Local Emulator Suite ולעיין בפקודות ה-CLI שלו.
מומלץ גם להכיר את התכונות ואת תהליך ההטמעה של Firebase Hosting. מומלץ להתחיל עם ההקדמה ל-Firebase Hosting.
מה אפשר לעשות עם Firebase Hosting האמולטור?
האמולטור Firebase Hosting מספק הדמיה מקומית ברמת דיוק גבוהה של שירותי Hosting, ומאפשר להשתמש ברוב הפונקציות שזמינות בסביבת הייצור Hosting. האמולטור Hosting מאפשר לכם:
- יצירת אב טיפוס לאתרים סטטיים ולאפליקציות אינטרנט בלי לשלם על אחסון או על גישה
- יצירת אב טיפוס, בדיקה וניפוי באגים בפונקציות HTTPS לפני הפריסה באתר Hosting
- בדיקת אתרים ואפליקציות אינטרנט בתהליכי עבודה של אינטגרציה רציפה (CI) בקונטיינרים.
בחירת פרויקט ב-Firebase
Firebase Local Emulator Suite מדמה מוצרים לפרויקט Firebase יחיד.
כדי לבחור את הפרויקט שבו רוצים להשתמש, לפני שמפעילים את האמולטורים, מריצים את הפקודה firebase use בספריית העבודה. אפשר גם להעביר את הדגל --project לכל פקודת אמולטור.
Local Emulator Suite תומך באמולציה של פרויקטים אמיתיים ב-Firebase ושל פרויקטים לדוגמה.
| סוג הפרויקט | תכונות | שימוש באמולטורים |
|---|---|---|
| Real |
פרויקט Firebase אמיתי הוא פרויקט שיצרתם והגדרתם (סביר להניח שבאמצעות Firebaseהמסוף). בפרויקטים אמיתיים יש משאבים פעילים, כמו מופעים של מסדי נתונים, קטגוריות אחסון, פונקציות או כל משאב אחר שהגדרתם לפרויקט הזה ב-Firebase. |
כשעובדים עם פרויקטים אמיתיים ב-Firebase, אפשר להפעיל אמולטורים לכל המוצרים הנתמכים או לחלק מהם. לכל המוצרים שאתם לא מדמים, האפליקציות והקוד שלכם יפעלו עם משאב פעיל (מופע של מסד נתונים, קטגוריית אחסון, פונקציה וכו'). |
| הדגמה |
לפרויקט הדגמה ב-Firebase אין הגדרה אמיתית של Firebase ואין לו משאבים פעילים. בדרך כלל ניגשים לפרויקטים האלה באמצעות הדרכות של Codelab או מדריכים אחרים. מזהי פרויקטים של פרויקטים לדוגמה מתחילים בקידומת |
כשעובדים עם הדגמות של פרויקטים ב-Firebase, האפליקציות והקוד מקיימים אינטראקציה רק עם אמולטורים. אם האפליקציה מנסה ליצור אינטראקציה עם משאב שלא מופעל בו אמולטור, הקוד ייכשל. |
מומלץ להשתמש בפרויקטים לדוגמה ככל האפשר. ההטבות כוללות:
- ההגדרה קלה יותר, כי אפשר להריץ את האמולטורים בלי ליצור פרויקט Firebase
- רמת בטיחות גבוהה יותר, כי אם הקוד שלכם מפעיל בטעות משאבים לא מדומיים (בסביבת ייצור), אין סיכוי לשינוי נתונים, לשימוש ולחיוב
- תמיכה טובה יותר במצב אופליין, כי אין צורך לגשת לאינטרנט כדי להוריד את הגדרות ה-SDK.
תהליך עבודה מרכזי ליצירת אב טיפוס
אם אתם מבצעים איטרציות מהירות או רוצים שהאפליקציה שלכם תקיים אינטראקציה עם משאבי פרויקט עורפיים מדומה, אתם יכולים לבדוק את התוכן וההגדרות של Hosting באופן מקומי. כשבודקים באופן מקומי, Firebase מציג את אפליקציית האינטרנט בכתובת URL שמתארחת באופן מקומי.
(אופציונלי) כברירת מחדל, האפליקציה שמתארחת באופן מקומי תקיים אינטראקציה עם משאבי פרויקט אמיתיים (פונקציות, מסד נתונים, כללים וכו'), ולא עם משאבים מדומה. אפשר גם לקשר את האפליקציה כדי להשתמש במשאבי פרויקט שנוצרו באמצעות אמולציה שהגדרתם. מידע נוסף: Realtime Database | Cloud Firestore | Cloud Functions
מהרמה הבסיסית (root) של ספריית הפרויקט המקומית, מריצים את הפקודה הבאה:
firebase emulators:start
פותחים את אפליקציית האינטרנט בכתובת ה-URL המקומית שמוחזרת על ידי ה-CLI (בדרך כלל
http://localhost:5000).כדי לעדכן את כתובת ה-URL המקומית עם השינויים, צריך לרענן את הדפדפן.
בדיקה ממכשירים מקומיים אחרים
כברירת מחדל, האמולטורים מגיבים רק לבקשות מ-localhost. המשמעות היא שתוכלו לגשת לתוכן המתארח מדפדפן האינטרנט במחשב, אבל לא ממכשירים אחרים ברשת. אם רוצים לבצע בדיקה ממכשירים מקומיים אחרים, צריך להגדיר את firebase.json כך:
"emulators": {
// ...
"hosting": {
"port": 5000,
"host": "0.0.0.0"
}
}
יצירת אסימוני אימות לתהליכי עבודה של אינטגרציה רציפה
אם תהליכי העבודה של השילוב הרציף שלכם מסתמכים על Firebase Hosting, תצטרכו להיכנס באמצעות אסימון כדי להפעיל את firebase emulators:exec. לא צריך להתחבר כדי להשתמש באמולטורים האחרים.
כדי ליצור טוקן, מריצים את הפקודה firebase login:ci בסביבה המקומית. לא מומלץ לבצע את הפעולה הזו ממערכת CI. פועלים לפי ההוראות כדי לבצע אימות.
צריך לבצע את השלב הזה רק פעם אחת לכל פרויקט, כי האסימון יהיה תקף בכל הגרסאות. צריך להתייחס לטוקן כמו לסיסמה, ולשמור אותו בסוד.
אם סביבת ה-CI מאפשרת לכם לציין משתני סביבה שאפשר להשתמש בהם בסקריפטים של גרסת ה-build, פשוט יוצרים משתנה סביבה בשם FIREBASE_TOKEN, והערך שלו הוא המחרוזת של אסימון הגישה. CLI של Firebase יזהה אוטומטית את משתנה הסביבה FIREBASE_TOKEN והאמולטורים יופעלו בצורה תקינה.
כמוצא אחרון, אפשר פשוט לכלול את האסימון בסקריפט הבנייה, אבל חשוב לוודא שלצדדים לא מהימנים אין גישה אליו. בגישה הזו של קידוד קשיח, אפשר להוסיף --token "YOUR_TOKEN_STRING_HERE" לפקודה firebase emulators:exec.
מה הלאה?
- כדי להריץ מדריך למתחילים באמצעות האמולטור Hosting, פועלים לפי ההוראות שבסדנת הקוד של Firebase לאינטרנט.
- להבין איך ליצור אב טיפוס של פונקציות HTTPS באמצעות האמולטור Hosting, כמו שמתואר במדריכים לאירוח פונקציות.
- כדי לראות אוסף של סרטונים ודוגמאות מפורטות, אפשר לעיין בפלייליסט ההדרכה בנושא Firebase Emulators.