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

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

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

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

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

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

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

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

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

  • השתמש API REST אירוח: 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

  • השתמש API REST אירוח: projects.sites.delete

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

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

כשיש לך מספר אתרים ואתה מפעיל פקודות פריסה של Firebase CLI, ה- CLI זקוק לדרך לתקשר אילו הגדרות צריך לפרוס לכל אתר. עם מטרות לפרוס לך באופן ייחודי ניתן לזהות אתר ספציפי עם TARGET_NAME ב שלך 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 מחקה את תוכן האחסון ואת התצורה של אתר האחסון שצוין בכתובת אתר המתארחת באופן מקומי
firebase hosting:channel:deploy \
CHANNEL_ID
פורס את התוכן ותצורת אירוח של האתר המארח המחדל בכתוב URL המקדימה
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
משרת את תוכן האחסון ואת התצורה של אתר האחסון שצוין בכתובת אתר המתארחת באופן מקומי