לפני שמתחילים ליצור אב טיפוס ולבדוק את אפליקציית האינטרנט באמצעות המהדר 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 יחיד.
כדי לבחור את הפרויקט שבו רוצים להשתמש, לפני שמפעילים את הסימולטורים, מריצים את הפקודה firebase use
בספריית העבודה ב-CLI. לחלופין, אפשר להעביר את הדגל --project
לכל הפקודות של המהדר.
Local Emulator Suite תומך בהדמיה של פרויקטים אמיתיים ופרויקטים דמוניים ב-Firebase.
סוג הפרויקט | תכונות | שימוש באמולטורים |
---|---|---|
ממשי |
פרויקט Firebase אמיתי הוא פרויקט שיצרתם והגדרתם (סביר להניח באמצעות מסוף Firebase). בפרויקטים אמיתיים יש משאבים פעילים, כמו מכונות של מסדי נתונים, קטגוריות אחסון, פונקציות או כל משאב אחר שהגדרתם לפרויקט הזה ב-Firebase. |
כשעובדים עם פרויקטים אמיתיים ב-Firebase, אפשר להריץ אמוללטורים לכל המוצרים הנתמכים או לחלק מהם. לגבי מוצרים שלא מעתיקים, האפליקציות והקוד יתקשרו עם המשאב הפעיל (מכונה של מסד נתונים, קטגוריה של אחסון, פונקציה וכו'). |
הדגמה |
בפרויקט הדגמה ב-Firebase אין הגדרות אמיתיות של Firebase ואין משאבים פעילים. בדרך כלל ניגשים לפרויקטים האלה דרך הדרכות של Codelab או מדריכים אחרים. מזהי פרויקטים של פרויקטים לדוגמה כוללים את הקידומת |
כשעובדים עם פרויקטים לדוגמה ב-Firebase, האפליקציות והקוד שלכם מקיימים אינטראקציה עם אמוללטורים בלבד. אם האפליקציה תנסה לקיים אינטראקציה עם משאב שאין לו מכונה וירטואלית שפועלת, הקוד הזה ייכשל. |
מומלץ להשתמש בפרויקטים לדוגמה כשהדבר אפשרי. ההטבות כוללות:
- הגדרה קלה יותר, כי אפשר להריץ את הסימולטורים בלי ליצור פרויקט Firebase
- אבטחה חזקה יותר, כי אם הקוד מפעיל בטעות משאבים לא ממולאמים (בפרודקשן), אין סיכוי לשינוי נתונים, שימוש בחיוב
- תמיכה טובה יותר במצב אופליין, כי אין צורך לגשת לאינטרנט כדי להוריד את הגדרות ה-SDK.
תהליך העבודה העיקרי ליצירת אב טיפוס
אם אתם מבצעים איטרציות מהירות או אם אתם רוצים שהאפליקציה תהיה באינטראקציה עם משאבי פרויקטים של קצה עורפי שהועתקו, תוכלו לבדוק את התוכן וההגדרות של Hosting באופן מקומי. כשבודקים באופן מקומי, Firebase מציג את אפליקציית האינטרנט בכתובת URL שמתארחת באופן מקומי.
(אופציונלי) כברירת מחדל, האפליקציה שמתארחת באופן מקומי תיצור אינטראקציה עם משאבי הפרויקט האמיתיים, ולא עם משאבי הפרויקט המעתיקים (פונקציות, מסדי נתונים, כללים וכו'). במקום זאת, אפשר לקשר את האפליקציה לשימוש במשאבי פרויקטים הדמיים שהגדרתם. מידע נוסף: Realtime Database | Cloud Firestore | Cloud Functions
מריצים את הפקודה הבאה מהשורש של ספריית הפרויקט המקומית:
firebase emulators:start
פותחים את אפליקציית האינטרנט בכתובת ה-URL המקומית שמוחזרת על ידי CLI (בדרך כלל
http://localhost:5000
).כדי לעדכן את כתובת ה-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
, והערך הוא המחרוזת של אסימון הגישה. ה-CLI של Firebase יזהה באופן אוטומטי את משתנה הסביבה FIREBASE_TOKEN
והמכונות הווירטואליות יתחילו לפעול כמו שצריך.
כחלופה אחרונה, אפשר פשוט לכלול את הטוקן בסקריפט ה-build, אבל חשוב לוודא שלצדדים לא מהימנים אין גישה. לגישה הזו עם קידוד מובנה, אפשר להוסיף את הערך --token "YOUR_TOKEN_STRING_HERE"
לפקודה firebase emulators:exec
.
מה הלאה?
- מריצים מדריך למתחילים באמצעות המהדר Hosting לפי ההוראות בcodelab לאינטרנט של Firebase.
- במדריכים לאירוח פונקציות מוסבר איך ליצור אב טיפוס של פונקציות HTTPS באמצעות המהדר Hosting.
- כדי לצפות בקבוצה של סרטונים נבחרים ובדוגמאות מפורטות לשימוש, מומלץ לעיין בפלייליסט ההדרכה של מכונות הווירטואליות של Firebase.