ניהול שידורים חיים & תצוגה מקדימה של ערוצים, גרסאות וגרסאות של האתר

Firebase Hosting מספקת כלים דרך מסוף Firebase ו-CLI של Firebase לניהול הערוצים, הגרסאות והמהדורות של האתר Hosting.

סקירה כללית על התשתית של Hosting

הבנת התשתית של Hosting עוזרת להבין את אפשרויות הניהול שמתוארות בדף הזה.

לכל פרויקט ב-Firebase יש Hosting אתר שמוגדר כברירת מחדל עם גישה לכל המשאבים של הפרויקט (מסדי נתונים, אימות, פונקציות וכו'). אתר מכיל ערוץ אחד או יותר, כאשר כל ערוץ משויך לכתובת URL שבה מוצג תוכן ספציפי ולהגדרה של Hosting.

תמונה של <span class=Firebase Hosting hierarchy" />

לכל אתר יש ערוץ 'בשידור חי' שבו מוצג תוכן, וגם HostingהגדרותHosting ב-(1) תתי-הדומיין שהוקצו לאתר ב-Firebase (SITE_ID.web.app ו-SITE_ID.firebaseapp.com) וב-(2) דומיינים מותאמים אישית שמקושרים לאתר. אפשר גם ליצור ערוצי 'תצוגה מקדימה' אופציונליים שמציגים תוכן והגדרות משלהם בכתובות URL זמניות וניתנות לשיתוף של 'תצוגה מקדימה' (SITE_ID--CHANNEL_ID-RANDOM_HASH.web.app).

התוכן וההגדרות שמוצגים בכל ערוץ נארזים באובייקט version עם מזהה ייחודי. כשפורסים באתר, מערכת Firebase יוצרת אובייקט release שמפנה לגרסה ספציפית. גרסה מכילה מטא-נתונים על הפריסה, כמו מי פרס את הגרסה ומתי.

בHosting לוח הבקרה של פרויקט Firebase, אפשר לראות את ההיסטוריה המלאה של פריטי התוכן בערוץ בשידור חי בטבלה היסטוריית פריטי תוכן. אם יש לכם מספר אתרי Hosting, לוחצים על הצגה ליד האתר הרצוי כדי לראות את היסטוריית הגרסאות שלו. אם יש לכם ערוצי תצוגה מקדימה, הם מוצגים גם בלוח הבקרה Hosting.

ניהול ההגדרות של הערוץ

אתם יכולים לשלוט בהגדרות של כל ערוץ באתר. חלק מההגדרות, כמו תוקף הערוץ, רלוונטיות רק לערוצי תצוגה מקדימה.

הגבלת מספר הגרסאות לשמירה

בכל פעם שמבצעים פריסה לערוץ (ויוצרים גרסה), Hosting שומר את הגרסה שמשויכת לגרסה הקודמת באחסון של הפרויקט Hosting. אתם יכולים להגדיר את מספר הגרסאות שיישארו לכל ערוץ בפרויקט, גם לערוצים פעילים וגם לערוצי תצוגה מקדימה.

  • למה Hosting שומר גרסאות קודמות?
    בערוץ בשידור חי, שמירת הגרסאות הקודמות מאפשרת לכם לחזור לגרסה קודמת של האתר, אם יש צורך בכך. בשלב הזה, אי אפשר לחזור לגרסה קודמת בערוצי התצוגה המקדימה.

  • למה צריך להגביל את מספר הגרסאות שרוצים לשמור?
    התכונה הזו יכולה לעזור לכם לשלוט ברמת השימוש באחסון של Hosting הפרויקט, כי התוכן של הגרסאות הקודמות נשמר באחסון הזה. אפשר לעקוב אחרי נפח האחסון של Hosting בכרטיסייה אחסון במסוף.

  • מה קורה כשמגבילים את מספר הגרסאות שרוצים לשמור?
    כשמגדירים מגבלה על מספר הגרסאות שרוצים לשמור, התוכן של כל הגרסאות שחורגות מהמגבלה שנקבעה מתוזמן למחיקה, החל מהגרסאות הכי ישנות.

כך מגדירים את מגבלת האחסון של גרסה בערוץ:

  1. במסוף Firebase, נכנסים לתיבת הדו-שיח של הגדרת אחסון הגרסה:

    • בערוץ בשידור חי
      בטבלה Release History (היסטוריית הגרסאות) של האתר, לוחצים על ואז בוחרים באפשרות Release storage settings (הגדרות אחסון של גרסה).

    • לכל ערוץ תצוגה מקדימה
      בשורה של ערוץ התצוגה המקדימה, לוחצים על ואז בוחרים באפשרות הגדרות הערוץ.

  2. מזינים את מספר הפריטים שרוצים לשמור ולוחצים על שמירה.

הגדרת תפוגה לערוץ בגרסת Preview

כברירת מחדל, התוקף של ערוץ בתצוגה מקדימה פג 7 ימים מתאריך היצירה שלו, אבל התוקף של הערוץ הפעיל באתר שלכם לא יפוג לעולם.

כשערוץ בתצוגה מקדימה מפסיק לפעול, הערוץ, הפריטים שפורסמו בו והגרסאות שמשויכות אליו מתוזמנים למחיקה תוך 24 שעות. גם כתובת ה-URL של התצוגה המקדימה שמשויכת אליה מושבתת. חריג למחיקת הגרסה הוא אם גרסה משויכת לגרסה אחרת להפצה (זה קורה, למשל, אם משכפלים גרסה מערוץ אחד לערוץ אחר באותו אתר).

Hosting תומך בשתי דרכים שונות לשליטה בתפוגה של ערוץ:

  • Firebase console
    בשורה של ערוץ הטרום-הפצה, לוחצים על ואז בוחרים באפשרות הגדרות הערוץ. מזינים את התאריך והשעה של התפוגה.

  • Firebase CLI ‫
    כשפורסים לערוץ התצוגה המקדימה, מעבירים את הדגל --expires DURATION, לדוגמה:

    firebase hosting:channel:deploy new-awesome-feature --expires 7d

    תאריך התפוגה יכול להיות עד 30 יום מתאריך הפריסה. משתמשים ב-h לשעות, ב-d לימים וב-w לשבועות (לדוגמה, 12h,‏ 7d,‏ 2w בהתאמה).

שיבוט גרסה מערוץ אחד לערוץ אחר

אפשר לשכפל גרסה שפרסתם מערוץ אחד לערוץ אחר. אפשר לשכפל בין ערוצים פעילים או ערוצי תצוגה מקדימה, בין Hosting אתרים או אפילו בין פרויקטים של Firebase.

פקודת השיבוט גם מבצעת פריסה בערוץ היעד, כך שהתוכן וההגדרות המשובטים של Hosting מוצגים באופן אוטומטי בכתובת ה-URL המשויכת של ערוץ היעד.

התכונה הזו שימושית למעקב אחר גרסאות או אם אתם רוצים להיות בטוחים שאתם מפעילים את התוכן המדויק שראיתם או בדקתם בערוץ אחר. הנה כמה דוגמאות:

  • שיבוט מערוץ תצוגה מקדימה של 'בדיקת איכות' לערוץ הפעיל של האתר (העברה לשידור חי!)

  • שיבוט מהערוץ הפעיל של האתר לערוץ תצוגה מקדימה לניפוי באגים (למשל, לפני ביטול שינויים)

  • שיבוט מערוץ בפרויקט Firebase 'staging' לערוץ תצוגה מקדימה בפרויקט Firebase 'prod'

כדי לשכפל גרסה, מריצים את הפקודה הבאה מכל ספרייה:

firebase hosting:clone SOURCE_SITE_ID:SOURCE_CHANNEL_ID TARGET_SITE_ID:TARGET_CHANNEL_ID

מחליפים כל placeholder בערכים הבאים:

  • SOURCE_SITE_ID ו-TARGET_SITE_ID: אלה המזהים של האתרים Hosting שמכילים את הערוצים.

    • באתר ברירת המחדל Hosting, משתמשים במזהה הפרויקט ב-Firebase.
    • אפשר לציין Hosting אתרים שנמצאים באותו פרויקט Firebase או אפילו בפרויקטים שונים של Firebase.
  • SOURCE_CHANNEL_ID ו-TARGET_CHANNEL_ID: אלה המזהים של הערוצים.

    • בערוץ שידור חי, צריך להשתמש ב-live כמזהה הערוץ.
    • אם ערוץ היעד שצוין עדיין לא קיים, הפקודה הזו יוצרת את הערוץ לפני הפריסה אליו.

חזרה לגרסה קודמת של האתר

אתם יכולים לחזור לגרסה קודמת של הערוץ הפעיל של האתר. הפעולה הזו שימושית אם יש בעיה בגרסה הנוכחית ואתם רוצים לחזור לגרסה קודמת של האתר שאתם יודעים שהיא תקינה. או אולי האתר שלכם הציג תוכן זמני לכבוד חג או אירוע מיוחד, אבל עכשיו אתם רוצים לחזור להצגת התוכן הרגיל.

כשמבצעים החזרה לגרסה קודמת, נוצרת גרסה חדשה שמציגה את אותה גרסת תוכן כמו גרסה קודמת. בטבלה היסטוריית הגרסאות, אותו מזהה גרסה יופיע בשתי הגרסאות.

כך מבצעים חזרה לגרסה הקודמת:

  1. במסוף Firebase, בטבלה Release History של האתר, מעבירים את העכבר מעל רשומת הגרסה הקודמת שרוצים לחזור אליה.

  2. לוחצים על ואז על החזרה לגרסה קודמת.

מחיקה ידנית של גרסת הפצה

יכול להיות שתצטרכו למחוק באופן ידני פריט תוכן מהערוץ הפעיל כדי לפנות נפח אחסון של Hosting לפרויקט. אפשר למחוק רק גרסאות קודמות, ולא את הגרסה שמוצגת כרגע באתר הפעיל.

כשמוחקים פריט תוכן, למעשה מוחקים את התוכן שלו, והוא מתוזמן למחיקה תוך 24 שעות. אובייקט הגרסה עצמו נשמר כדי שעדיין תוכלו לראות את המטא-נתונים שלו (מי ביצע את הפריסה ומתי).

כך מוחקים פריט תוכן:

  1. במסוף Firebase, בטבלה Release History (היסטוריית הגרסאות) של האתר, מעבירים את העכבר מעל לגרסה הקודמת שרוצים למחוק.

  2. לוחצים על ובוחרים באפשרות מחיקה.

מחיקת קבצים באופן ידני

ב-Firebase Hosting, הדרך העיקרית למחוק קבצים שנבחרו מאתר שפרסתם היא למחוק את הקבצים באופן מקומי ואז לפרוס מחדש.

מחיקה ידנית של ערוץ תצוגה מקדימה

כדי לראות תצוגה מקדימה של הערוצים, לוחצים על הערוץ שרוצים לראות בתצוגה מקדימה. בתצוגה הזו אפשר לראות, למחוק ולשחזר את הפריסות והגרסאות האחרונות שמשויכות לערוץ הספציפי. אפשר למחוק ערוץ תצוגה מקדימה, אבל אי אפשר למחוק את הערוץ הפעיל של האתר.

כשמוחקים ערוץ תצוגה מקדימה, הערוץ, הפריטים לפרסום והגרסאות המשויכות שלו מתוזמנים למחיקה תוך 24 שעות. גם כתובת ה-URL של התצוגה המקדימה שמשויכת אליה מושבתת. חריג למחיקת הגרסה הוא אם גרסה משויכת למהדורה אחרת (זה קורה, למשל, אם משכפלים גרסה מערוץ אחד לערוץ אחר באותו אתר).

Hosting תומך בשתי דרכים שונות למחיקת ערוץ תצוגה מקדימה:

  • Firebase console
    בשורה של ערוץ התצוגה המקדימה, לוחצים על ואז בוחרים באפשרות מחיקת הערוץ. אשר את המחיקה.

  • Firebase CLI
    מריצים את הפקודה הבאה מכל ספרייה:

    firebase hosting:channel:delete CHANNEL_ID

פקודות CLI לערוצי תצוגה מקדימה ולשיבוט

פקודות לערוצי תצוגה מקדימה

כל הפקודות לערוצי תצוגה מקדימה תומכות ביעדי פריסה אם יש לכם כמה Hosting אתרים.

פקודה תיאור
firebase hosting:channel:create CHANNEL_ID

יוצר ערוץ חדש לתצוגה מקדימה באתר Hosting default באמצעות CHANNEL_ID שצוין

הפקודה הזו לא מופעלת בערוץ.

firebase hosting:channel:delete CHANNEL_ID

מחיקת ערוץ התצוגה המקדימה שצוין

אי אפשר למחוק ערוץ שידור חי של אתר.

firebase hosting:channel:deploy CHANNEL_ID

הפריסה של התוכן וההגדרות של Hosting בערוץ התצוגה המקדימה שצוין

אם ערוץ התצוגה המקדימה עדיין לא קיים, הפקודה הזו יוצרת את הערוץ באתר ברירת המחדל Hosting לפני הפריסה בערוץ.

firebase hosting:channel:list רשימה של כל הערוצים (כולל הערוץ 'בשידור חי') באתר ברירת המחדל Hosting
firebase hosting:channel:open CHANNEL_ID פותח דפדפן לכתובת ה-URL של הערוץ שצוין או מחזיר את כתובת ה-URL אם אי אפשר לפתוח בדפדפן

פקודות לשכפול גרסה

פקודה תיאור
firebase hosting:clone \
SOURCE_SITE_ID:SOURCE_CHANNEL_ID \
TARGET_SITE_ID:TARGET_CHANNEL_ID

משכפל את הגרסה האחרונה שהופעלה בערוץ המקור שצוין לערוץ היעד שצוין

הפקודה הזו גם פורסת לערוץ ה "יעד" שצוין. אם ערוץ היעד עדיין לא קיים, הפקודה הזו יוצרת ערוץ חדש לתצוגה מקדימה באתר היעד לפני הפריסה בערוץ.Hosting

firebase hosting:clone \
SOURCE_SITE_ID:@VERSION_ID \
TARGET_SITE_ID:TARGET_CHANNEL_ID

משכפל את הגרסה שצוינה לערוץ ה'יעד' שצוין

הפקודה הזו גם פורסת לערוץ ה "יעד" שצוין. אם ערוץ היעד עדיין לא קיים, הפקודה הזו יוצרת ערוץ חדש לתצוגה מקדימה באתר היעד לפני הפריסה בערוץ.Hosting

אפשר למצוא את VERSION_ID במרכז השליטה Hosting של מסוף Firebase.