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

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

לפני שמתחילים

מבצעים את השלבים שמפורטים Hosting הדף 'תחילת העבודה', במיוחד את המשימות הבאות:

  1. מתקינים או מעדכנים את ה-CLI של Firebase לגרסה האחרונה.
  2. מקשרים את ספריית הפרויקט המקומית (הכוללת את תוכן האפליקציה) אל פרויקט Firebase.

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

שלב 1: בדיקה מקומית

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

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

  1. (אופציונלי) כברירת מחדל, האפליקציה שמתארחת באופן מקומי מקיימת אינטראקציה עם תוכן מציאותי, לא emulated, לא משאבי הפרויקט (פונקציות, מסד נתונים, כללים וכו'). במקום זאת, אפשר גם לחבר את האפליקציה כדי להשתמש בכל פרויקט אמולציה המשאבים שהגדרתם. לקבלת מידע נוסף: Realtime Database | Cloud Firestore | Cloud Functions

  2. מריצים את הפקודה הבאה מהשורש של ספריית הפרויקט המקומית:

    firebase emulators:start
  3. פותחים את אפליקציית האינטרנט בכתובת ה-URL המקומית שהוחזרה על ידי ה-CLI (בדרך כלל) http://localhost:5000).

  4. כדי לעדכן את כתובת ה-URL המקומית עם השינויים, צריך לרענן את הדפדפן.

בדיקה ממכשירים מקומיים אחרים

כברירת מחדל, האמולטורים מגיבים רק לבקשות של localhost. כלומר, תוכלו לגשת לתוכן המתארח מהדפדפן האינטרנט של המחשב, אבל לא ממכשירים אחרים ברשת. אם רוצים לבצע בדיקה במכשירים מקומיים אחרים, צריך להגדיר את firebase.json כך:

"emulators": {
    // ...

    "hosting": {
      "port": 5000,
      "host": "0.0.0.0"
    }
  }

שלב 2: תצוגה מקדימה ושיתוף

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

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

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

  1. ברמה הבסיסית (root) של ספריית הפרויקט המקומית, מריצים את הפקודה הבאה:

    firebase hosting:channel:deploy CHANNEL_ID

    מחליפים את CHANNEL_ID במחרוזת ללא רווחים (לדוגמה, feature_mission-2-mars). המזהה הזה ישמש ליצירת כתובת ה-URL של התצוגה המקדימה שמשויכת לערוץ התצוגה המקדימה.

  2. פותחים את אפליקציית האינטרנט בכתובת ה-URL של התצוגה המקדימה שהוחזרה על ידי ה-CLI. זה ייראה משהו כזה: PROJECT_ID--CHANNEL_ID-RANDOM_HASH.web.app

  3. כדי לעדכן את כתובת ה-URL של התצוגה המקדימה בשינויים, מריצים שוב את אותה פקודה. חשוב לציין את אותו CHANNEL_ID בפקודה.

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

Firebase Hosting תומך ב-GitHub Action שיוצר ומעדכן באופן אוטומטי כתובת URL לתצוגה מקדימה כשאתם מבצעים התחייבות לשינויים בבקשת משיכה. בעזרת הקישור הבא אפשר להגדיר את פעולת GitHub הזו ולהשתמש בה.

שלב 3: פריסה בסביבת הייצור

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

אפשרות 1: שכפול מערוץ בתצוגה מקדימה לערוץ בשידור חי

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

  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. הצגת השינויים (השלב הבא).

אפשרות 2: פריסה מספריית הפרויקט המקומית לערוץ בשידור חי

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

  1. ברמה הבסיסית (root) של ספריית הפרויקט המקומית, מריצים את הפקודה הבאה:

    firebase deploy --only hosting
  2. הצגת השינויים (השלב הבא).

שלב 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) לאחר פריסה יכול להודיע למנהלי המערכת על פריסות של תוכן אתר חדש. פרטים נוספים זמינים במסמכי התיעוד של CLI של Firebase.

שמירת תוכן שנפרס במטמון

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

שימו לב שאפשר להגדיר את אחסון התוכן הדינמי במטמון.

הצגה באמצעות HTTPS

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

מתבצעת מחיקה של הקבצים

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

השלבים הבאים