לפני שמבצעים פריסה באתר הפעיל, כדאי להציג ולבדוק את השינויים. Firebase Hosting מאפשר לכם לראות ולבדוק שינויים באופן מקומי ולקיים אינטראקציה עם משאבי פרויקט עורפיים מדומיים. אם אתם רוצים שחברי הצוות יוכלו לראות ולבדוק את השינויים, Hosting יכול ליצור כתובות URL זמניות לתצוגה מקדימה של האתר שאפשר לשתף. אנחנו אפילו תומכים בשילוב עם GitHub כדי לפרוס מתוך בקשת משיכה.
לפני שמתחילים
צריך להשלים את השלבים שמפורטים בHostingדף 'תחילת העבודה', ובמיוחד את המשימות הבאות:
- מתקינים או מעדכנים את Firebase CLI לגרסה העדכנית ביותר.
- מקשרים את ספריית הפרויקט המקומית (שכוללת את התוכן של האפליקציה) לפרויקט Firebase.
אפשר גם לפרוס את Hostingהתוכן וההגדרות של האפליקציה, אבל זה לא חובה כדי לבצע את השלבים שבדף הזה.
שלב 1: בדיקה מקומית
אם אתם מבצעים איטרציות מהירות או רוצים שהאפליקציה שלכם תקיים אינטראקציה עם משאבי פרויקט של קצה עורפי מדומה, אתם יכולים לבדוק את התוכן ואת ההגדרות של Hosting באופן מקומי. כשבודקים באופן מקומי, Firebase מציג את אפליקציית האינטרנט בכתובת URL שמתארחת באופן מקומי.
Hosting הוא חלק מ-Firebase Local Emulator Suite, שמאפשר לאפליקציה שלכם אינטראקציה עם התוכן וההגדרות של Hosting שנוצרו באמצעות אמולציה, וגם עם משאבי הפרויקט של Hosting שנוצרו באמצעות אמולציה (פונקציות, מסדי נתונים וכללים).
(אופציונלי) כברירת מחדל, האפליקציה שמתארחת באופן מקומי תקיים אינטראקציה עם משאבי פרויקט אמיתיים (פונקציות, מסד נתונים, כללים וכו'), ולא עם משאבים מדומה. אפשר גם לקשר את האפליקציה כדי להשתמש במשאבי פרויקט מדומה שהגדרתם. מידע נוסף: 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"
}
}
שלב 2: תצוגה מקדימה ושיתוף
אם רוצים שאחרים יוכלו לראות את השינויים באפליקציית האינטרנט לפני שהיא תעלה לאוויר, אפשר להשתמש בערוצי תצוגה מקדימה.
אחרי הפריסה לערוץ תצוגה מקדימה, Firebase מציג את אפליקציית האינטרנט בכתובת URL של תצוגה מקדימה, שהיא כתובת URL זמנית שאפשר לשתף. כשמשתמשים בכתובת URL של תצוגה מקדימה, אפליקציית האינטרנט מקיימת אינטראקציה עם ה-backend האמיתי שלכם עבור כל משאבי הפרויקט (למעט פונקציות מוצמדות בהגדרות של הכתיבה מחדש).
שימו לב: קשה לנחש כתובות URL של תצוגה מקדימה (כי הן מכילות גיבוב אקראי), אבל הן גלויות לכולם. לכן, כל מי שיודע את כתובת ה-URL יכול לגשת אליה.
מהרמה הבסיסית (root) של ספריית הפרויקט המקומית, מריצים את הפקודה הבאה:
firebase hosting:channel:deploy CHANNEL_ID
מחליפים את CHANNEL_ID במחרוזת ללא רווחים (לדוגמה,
feature_mission-2-mars). המזהה הזה ישמש ליצירת כתובת ה-URL של התצוגה המקדימה שמשויכת לערוץ התצוגה המקדימה.פותחים את אפליקציית האינטרנט בכתובת ה-URL של התצוגה המקדימה שהוחזרה על ידי CLI. זה ייראה בערך כך:
PROJECT_ID--CHANNEL_ID-RANDOM_HASH.web.appכדי לעדכן את כתובת ה-URL של התצוגה המקדימה עם השינויים, מריצים שוב את אותה הפקודה. חשוב לציין את אותו
CHANNEL_IDבפקודה.
מידע על ניהול ערוצי תצוגה מקדימה, כולל איך מגדירים את תאריך התפוגה של הערוץ.
Firebase Hosting תומך ב-GitHub Action שיוצר ומעדכן באופן אוטומטי כתובת URL של תצוגה מקדימה כשמבצעים קומיט של שינויים בבקשת משיכה. איך מגדירים את פעולת GitHub ומשתמשים בה
שלב 3: פריסה בשידור חי
כשתהיו מוכנים לשתף את השינויים עם העולם, תוכלו לפרוס את התוכן וההגדרות בערוץ הפעיל.Hosting יש ב-Firebase כמה אפשרויות שונות לשלב הזה, בהתאם לתרחיש השימוש (אפשר לראות את האפשרויות בהמשך).
אפשרות 1: שיבוט מערוץ בתצוגה מקדימה לערוץ הפעיל
האפשרות הזו מבטיחה שאתם מפרסמים בערוץ הפעיל את התוכן ואת ההגדרות המדויקים שבדקתם בערוץ התצוגה המקדימה. מידע נוסף על שיבוט גרסאות
מכל ספרייה, מריצים את הפקודה הבאה:
firebase hosting:clone SOURCE_SITE_ID:SOURCE_CHANNEL_ID TARGET_SITE_ID:live
מחליפים כל placeholder בערכים הבאים:
SOURCE_SITE_ID ו-TARGET_SITE_ID: אלה מזהי האתרים Hosting שמכילים את הערוצים.
- באתר ברירת המחדל Hosting, משתמשים במזהה הפרויקט ב-Firebase.
- אתם יכולים לציין אתרים שנמצאים באותו פרויקט Firebase או אפילו בפרויקטים שונים של Firebase.
SOURCE_CHANNEL_ID: המזהה של הערוץ שבו מוצגת כרגע הגרסה שרוצים להטמיע בערוץ הפעיל.
- בערוץ בשידור חי, משתמשים ב-
liveכמזהה הערוץ.
- בערוץ בשידור חי, משתמשים ב-
צפייה בשינויים (השלב הבא).
אפשרות 2: פריסה מספריית הפרויקט המקומית לערוץ הפעיל
האפשרות הזו מאפשרת לכם גמישות בהתאמת ההגדרות שספציפיות לערוץ השידור החי, או בפריסה גם אם לא השתמשתם בערוץ תצוגה מקדימה.
מהרמה הבסיסית (root) של ספריית הפרויקט המקומית, מריצים את הפקודה הבאה:
firebase deploy --only hosting
צפייה בשינויים (השלב הבא).
שלב 4: הצגת השינויים באתר הפעיל
שתי האפשרויות שלמעלה מאפשרות לפרוס את התוכן וההגדרות של Hosting באתרים הבאים:
תתי-הדומיינים שהוקצו על ידי Firebase לאתר Hosting שמוגדר כברירת מחדל ולכל אתר Hosting נוסף:
SITE_ID.web.app(לדוגמה,PROJECT_ID.web.app)
SITE_ID.firebaseapp.com(לדוגמה,PROJECT_ID.firebaseapp.com)דומיינים מותאמים אישית שחיברתם לאתרים שלכם ב-Hosting
כדי להגביל את הפריסה לאתר Hosting ספציפי, מציינים יעד פריסה בפקודת ה-CLI.
פעילויות ומידע אחרים שקשורים לפריסה
הוספת תגובה לפריסה
אפשר להוסיף תגובה לפריסה. התגובה הזו תוצג עם פרטי הפריסה האחרים בלוח הבקרה של Hosting במסוף Firebase. לדוגמה:
firebase deploy --only hosting -m "Deploying the best new feature ever."
הוספת משימות מבוססות סקריפט לפני הפריסה ואחריה
אפשר לחבר סקריפטים של מעטפת לפקודה firebase deploy כדי לבצע משימות לפני או אחרי הפריסה. לדוגמה, אפשר להשתמש ב-hook אחרי פריסה כדי לשלוח הודעה לאדמינים על פריסות חדשות של תוכן באתר. פרטים נוספים מופיעים בFirebaseמאמרי העזרה בנושא CLI.
שמירת תוכן שנפרס במטמון
כשמתקבלת בקשה לתוכן סטטי, מערכת Firebase Hosting שומרת את התוכן במטמון ב-CDN באופן אוטומטי. אם פורסים מחדש את התוכן של האתר, Firebase מנקה אוטומטית את כל התוכן הסטטי שנשמר במטמון ברשת ה-CDN, כך שבקשות חדשות יקבלו את התוכן החדש.
שימו לב שאפשר להגדיר שמירת תוכן דינמי במטמון.
הצגת תוכן באמצעות HTTPS
חשוב לוודא שכל המשאבים החיצוניים שלא מתארחים ב-Firebase Hosting נטענים באמצעות SSL (HTTPS),כולל סקריפטים חיצוניים. רוב הדפדפנים לא מאפשרים למשתמשים לטעון 'תוכן מעורב' (תנועה מוצפנת ב-SSL ותנועה לא מוצפנת).
מחיקת קבצים
ב-Firebase Hosting, הדרך העיקרית למחוק קבצים נבחרים מאתר שפורסם היא למחוק את הקבצים באופן מקומי ואז לפרסם מחדש.
השלבים הבאים
כדי לשלב עם GitHub ולשפר את התוכן בתצוגה המקדימה, מגדירים את פעולת GitHub.
מידע נוסף על יכולות אירוח:
אפשר לעיין במסמכי העזרה המלאים של Firebase CLI.
הכנות להשקת האפליקציה:
- מגדירים התראות על תקציב לפרויקט במסוף Google Cloud.
- כדי לקבל תמונה כוללת של השימוש בפרויקט בשירותי Firebase שונים, אפשר לעקוב אחרי לוח הבקרה 'שימוש וחיוב' במסוף Firebase. אפשר גם להיכנס לHosting לוח הבקרה 'שימוש' כדי לקבל מידע מפורט יותר על השימוש.
- עיון ברשימת המשימות להשקה של Firebase.