אפשר להגדיר אתר Firebase Hosting אחד או יותר בפרויקט Firebase אחד. מכיוון שכל האתרים נמצאים באותו פרויקט Firebase, לכל האתרים יש גישה למשאבים האחרים של Firebase בפרויקט.
- לכל אתר יש הגדרת אירוח משלו.
- כל אתר מארח אוסף תוכן משלו.
- לכל אתר יכול להיות דומיין משויך אחד או יותר.
הגדרת כמה אתרים של Hosting באותו פרויקט ב-Firebase מאפשרת לכם לשתף משאבי Firebase בין אתרים ואפליקציות קשורים בקלות רבה יותר. לדוגמה, אם מגדירים את הבלוג, את לוח הבקרה של האדמין ואת האפליקציה הציבורית כאתרים נפרדים באותו פרויקט Firebase, כולם יכולים לשתף את מסד הנתונים של המשתמשים Firebase Authentication, אבל לכל אחד מהם יכולים להיות דומיינים או תוכן ייחודיים משלו.
שלב 1: מעדכנים את גרסת ה-CLI של Firebase
כדי לגשת לתכונות העדכניות ביותר של Firebase Hosting, מעדכנים לגרסה האחרונה של ה-CLI של Firebase.
שלב 2: מוסיפים אתרים נוספים
אפשר להוסיף אתרים לפרויקט Firebase באחת מהשיטות הבאות:
שימוש בתהליך העבודה שמתואר בדף Hosting במסוף Firebase
משתמשים בפקודה Firebase ב-CLI:
firebase hosting:sites:create SITE_ID
שימוש ב-API ל-REST של Hosting:
projects.sites.create
לכל אחת מהשיטות האלה, צריך לציין את הערך של SITE_ID
, שמשמש ליצירת תת-הדומיינים שמוקצית להם ברירת המחדל ב-Firebase עבור האתר:
SITE_ID.web.app
SITE_ID.firebaseapp.com
מכיוון ש-SITE_ID
משמש בכתובות ה-URL האלה, מזהה האתר צריך לעמוד בדרישות הבאות:
- צריכה להיות תווית שם מארח תקינה, כלומר היא לא יכולה להכיל את התווים
.
,_
וכו'. - השם חייב להיות באורך של 30 תווים או פחות
- השם חייב להיות ייחודי ברמת Firebase
אפשר גם להוסיף דומיינים מותאמים אישית לכל אתר כדי להציג את אותו תוכן והגדרה בכמה כתובות URL.
מחיקת אתר משני
אפשר למחוק אתרים לא רצויים מפרויקט Firebase באחת מהשיטות הבאות:
שימוש בתהליך העבודה שמתואר בדף Hosting במסוף Firebase
משתמשים בפקודה Firebase ב-CLI:
firebase hosting:sites:delete SITE_ID
שימוש ב-API ל-REST של Hosting:
projects.sites.delete
שימו לב שאי אפשר למחוק את אתר ברירת המחדל, שיש לו את אותו SITE_ID
כמו מזהה הפרויקט ב-Firebase.
שלב 3: מגדירים יעדים לפריסה של האתרים
כשיש לכם כמה אתרים ואתם מריצים פקודות פריסה של ה-CLI Firebase, ל-CLI צריכה להיות דרך להעביר את ההגדרות שצריך לפרוס בכל אתר. בעזרת יעדי פריסה תוכלו לזהות באופן ייחודי אתר ספציפי באמצעות TARGET_NAME
בקובץ התצורה firebase.json
ובפקודות ה-CLI של Firebase לצורך בדיקה או פריסה באתרים.
כדי ליצור יעד פריסת אתר ולהחיל TARGET_NAME
על אתר Hosting, מריצים את הפקודה הבאה ב-CLI מהשורש של ספריית הפרויקט:
firebase target:apply hosting TARGET_NAME RESOURCE_IDENTIFIER
כאשר הפרמטרים הם:
TARGET_NAME – שם ייחודי (שהגדרתם בעצמכם) לאתר Hosting שבו אתם פורסים
RESOURCE_IDENTIFIER – ה-
SITE_ID
של האתר Hosting כפי שמופיע בפרויקט 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 |
הדמיה של התוכן וההגדרות של Hosting באתר Hosting שמוגדרת כברירת מחדל בכתובת URL שמתארחת באופן מקומי |
firebase emulators:start --only hosting:TARGET_NAME |
אמולציה של התוכן וההגדרות של Hosting באתר Hosting שצוין בכתובת URL שמתארחת באופן מקומי |
firebase hosting:channel:deploy \ |
פריסת התוכן וההגדרות של Hosting באתר Hosting שמוגדר כברירת מחדל בכתובת URL לתצוגה מקדימה |
firebase hosting:channel:deploy \ |
פריסת התוכן וההגדרות של Hosting באתר Hosting שצוין בכתובת URL של תצוגה מקדימה |
firebase deploy --only hosting |
פריסת התוכן וההגדרות של Hosting בערוץ החי של כל האתרים של Hosting שהוגדרו ב-firebase.json
|
firebase deploy --only hosting:TARGET_NAME |
פריסת התוכן וההגדרות של Hosting בערוץ החי של האתר Hosting שצוין |
פקודה | תיאור |
---|---|
(לא מומלץ, יש להשתמש במקום זאת ב-emulators:start )firebase serve --only hosting
|
הצגת התוכן וההגדרות של Hosting באתר Hosting שמוגדר כברירת מחדל בכתובת URL שמתארחת באופן מקומי |
(לא מומלץ, יש להשתמש במקום זאת ב-emulators:start )firebase serve --only hosting:TARGET_NAME
|
הצגת התוכן וההגדרות של Hosting באתר Hosting שצוין בכתובת URL שמתארח באופן מקומי |