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

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

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

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

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

תמונה של <span class=היררכיית האירוח ב-Firebase" />

לכל אתר 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. מזינים את מספר הגרסאות שרוצים לשמור ולוחצים על שמירה.

הגדרת תאריך התפוגה של ערוץ תצוגה מקדימה

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

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

ב-Hosting יש שתי דרכים שונות לשלוט בפקיעת התוקף של ערוץ:

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

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

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

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

שכפול גרסה מערוץ אחד לערוץ אחר

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

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

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

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

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

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

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

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

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

כך מבצעים חזרה לאחור:

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

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

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

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

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

כך מוחקים גרסה:

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

  2. לוחצים על ובוחרים באפשרות Delete.

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

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

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

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

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

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

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

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

    firebase hosting:channel:delete CHANNEL_ID

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

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

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

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

יצירת ערוץ תצוגה מקדימה חדש באתר Hosting שמוגדר כברירת מחדל באמצעות 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

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

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

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

הכלי יוצר עותק (cloning) של הגרסה שצוינה בערוץ 'target' שצוין

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

אפשר למצוא את VERSION_ID בלוח הבקרה של Hosting במסוף Firebase.