שתף משאבי פרויקט על פני מספר אתרים

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

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

שלב 1 : עדכן את גרסת Firebase CLI שלך

גש לתכונות האחסון העדכניות ביותר של Firebase על ידי עדכון לגרסה העדכנית ביותר של Firebase CLI .

שלב 2 : הוסף אתרים נוספים

הוסף אתרים נוספים לפרויקט Firebase באמצעות אחת מהשיטות הבאות:

  • השתמש בזרימת העבודה בדף אירוח של מסוף Firebase

  • השתמש בפקודה Firebase CLI: firebase hosting:sites:create SITE_ID

  • השתמש ב-Hosting REST API: projects.sites.create

עבור כל אחת מהשיטות הללו, תציין SITE_ID המשמש לבניית תת-הדומיינים המוגדרים כברירת מחדל ב-Firebase עבור האתר:

  • SITE_ID .web.app
  • SITE_ID .firebaseapp.com

מכיוון ש- SITE_ID משמש עבור כתובות אתרים אלו, למזהה האתר יש את הדרישות הבאות:

  • חייבת להיות תווית שם מארח חוקית, כלומר היא לא יכולה להכיל . , _ וכו'.
  • חייב להיות 30 תווים או פחות
  • חייב להיות ייחודי עולמי בתוך Firebase

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

מחק אתר משני

מחק אתרים לא רצויים מפרויקט Firebase באמצעות אחת מהשיטות הבאות:

  • השתמש בזרימת העבודה בדף אירוח של מסוף Firebase

  • השתמש בפקודה Firebase CLI: firebase hosting:sites:delete SITE_ID

  • השתמש ב-Hosting REST API: projects.sites.delete

שים לב שאינך יכול למחוק את אתר ברירת המחדל, שיש לו את אותו SITE_ID כמו מזהה הפרויקט שלך ב-Firebase.

שלב 3 : הגדר יעדי פריסה עבור האתרים שלך

כאשר יש לך מספר אתרים ואתה מפעיל פקודות פריסה של Firebase CLI, ה-CLI צריך דרך לתקשר אילו הגדרות יש לפרוס לכל אתר. עם פריסת יעדים תוכל לזהות באופן ייחודי אתר ספציפי עם TARGET_NAME בקובץ firebase.json של firebase.json ובפקודות Firebase CLI שלך לבדיקה או פריסה לאתרים שלך.

כדי ליצור יעד פריסה ולהחיל TARGET_NAME על אתר אירוח, הפעל את פקודת ה-CLI הבאה מהשורש של ספריית הפרויקט שלך:

firebase target:apply hosting TARGET_NAME RESOURCE_IDENTIFIER

איפה הפרמטרים:

  • TARGET_NAME - שם ייחודי (שהגדרת בעצמך) עבור אתר האירוח שאליו אתה פורס

  • RESOURCE_IDENTIFIER - ה- SITE_ID של אתר האירוח כפי שמופיע בפרויקט Firebase שלך

לדוגמה, אם יצרת שני אתרים ( myapp-blog ו- myapp-app ) בפרויקט Firebase שלך, תוכל להחיל TARGET_NAME ייחודי ( blog app , בהתאמה) על כל אתר על ידי הפעלת הפקודות הבאות:

firebase target:apply hosting blog myapp-blog
firebase target:apply hosting app myapp-app

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

שלב 4 : הגדר את תצורת האירוח עבור כל אתר

השתמש ב- TARGET_NAME המוחל של אתר כאשר אתה מגדיר את תצורת האירוח שלו בקובץ firebase.json שלך.

  • אם קובץ firebase.json שלך מגדיר את התצורה עבור אתרים מרובים, השתמש בפורמט מערך:

    {
      "hosting": [ {
          "target": "blog",  // "blog" is the applied TARGET_NAME for the Hosting site "myapp-blog"
          "public": "blog/dist",  // contents of this folder are deployed to the site "myapp-blog"
    
          // ...
        },
        {
          "target": "app",  // "app" is the applied TARGET_NAME for the Hosting site "myapp-app"
          "public": "app/dist",  // contents of this folder are deployed to the site "myapp-app"
    
          // ...
    
          "rewrites": [...]  // You can define specific Hosting configurations for each site
        }
      ]
    }
    
  • אם קובץ firebase.json שלך מגדיר את התצורה עבור אתר אחד בלבד, אין צורך להשתמש בפורמט מערך:

    {
      "hosting": {
          "target": "blog",
          "public": "dist",
    
          // ...
    
          "rewrites": [...]
      }
    }
    

שלב 5 : בדוק באופן מקומי, צפה בשינויים בתצוגה מקדימה ופריסה באתרים שלך

הפעל כל אחת מהפקודות הבאות מהשורש של ספריית הפרויקט המקומית שלך.

פקודה תיאור
firebase emulators:start --only hosting מחקה את תוכן האירוח והתצורה של אתר האירוח המוגדר כברירת מחדל בכתובת URL מתארחת מקומית
firebase emulators:start --only hosting: TARGET_NAME מחקה את תוכן האירוח והתצורה של אתר האירוח שצוין בכתובת URL מתארחת מקומית
firebase hosting:channel:deploy \
CHANNEL_ID
פורס את תוכן האירוח והתצורה של אתר האירוח המוגדר כברירת מחדל בכתובת אתר תצוגה מקדימה
firebase hosting:channel:deploy \
CHANNEL_ID --only TARGET_NAME
פורס את תוכן האירוח והתצורה של אתר האירוח שצוין בכתובת אתר תצוגה מקדימה
firebase deploy --only hosting פורס את התוכן והתצורה של אירוח לערוץ החי של כל אתרי האירוח המוגדרים ב- firebase.json
firebase deploy --only hosting: TARGET_NAME פורס את התוכן והתצורה של אירוח לערוץ החי של אתר האירוח שצוין
פקודה תיאור
(לא מומלץ; השתמש emulators:start במקום זאת)
firebase serve --only hosting
מגיש את תוכן האירוח והתצורה של אתר האירוח המוגדר כברירת מחדל בכתובת URL מתארחת מקומית
(לא מומלץ; השתמש emulators:start במקום זאת)
firebase serve --only hosting: TARGET_NAME
מגיש את תוכן האירוח והתצורה של אתר האירוח שצוין בכתובת URL מתארחת מקומית