לפני שמתחילים ליצור אב טיפוס ולבדוק את אפליקציית האינטרנט באמצעות האמולטור Firebase Hosting, חשוב לוודא שאתם מבינים את תהליך העבודה הכולל של Firebase Local Emulator Suite, ושמתקינים ומגדירים את Local Emulator Suite ובודקים את פקודות ה-CLI שלו.
בנוסף, כדאי להכיר את התכונות ואת תהליך ההטמעה של Firebase Hosting. מומלץ להתחיל במבוא ל-Firebase Hosting.
מה אפשר לעשות עם המהדר של Firebase Hosting?
במהדורת ה-emulator של Firebase Hosting אפשר לבצע אמולציה מקומית של שירותי Hosting באיכות גבוהה, עם חלק גדול מהפונקציונליות של Hosting בסביבת הייצור. האמולטור של Hosting מאפשר לכם:
- פיתוח אב טיפוס לאתרים סטטיים ולאפליקציות אינטרנט בלי חיובים על אחסון או גישה
- איך יוצרים אב טיפוס של פונקציות HTTPS, בודקים אותן ומאתרים באגים לפני הפריסה באתר האירוח
- לבדוק אתרים ואפליקציות אינטרנט בתהליכי עבודה של אינטגרציה רציפה (CI) בקונטיינרים.
בחירת פרויקט 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.