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