אפשר להגדיר אתר אחד או יותר Firebase Hosting בפרויקט Firebase אחד. מכיוון שכל האתרים נמצאים באותו פרויקט Firebase, לכל האתרים יש גישה למשאבים אחרים של Firebase בפרויקט.
- לכל אתר יש הגדרת אירוח משלו.
- כל אתר מארח אוסף תוכן משלו.
- לכל אתר יכול להיות דומיין משויך אחד או יותר.
אם מגדירים כמה Hosting אתרים באותו פרויקט ב-Firebase, קל יותר לשתף משאבים של Firebase בין אתרים ואפליקציות קשורים. לדוגמה, אם הגדרתם את הבלוג, את לוח האדמין ואת האפליקציה הציבורית כאתרים נפרדים באותו פרויקט Firebase, כולם יכולים לחלוק את אותוFirebase Authentication מסד נתונים של משתמשים, וגם לכל אחד מהם יכולים להיות דומיינים או תכנים ייחודיים משלו.
שלב 1: עדכון גרסת Firebase CLI
כדי לגשת לתכונות העדכניות ביותר של Firebase Hosting, צריך לעדכן לגרסה האחרונה של Firebase CLI.
שלב 2: מוסיפים אתרים נוספים
כדי להוסיף אתרים נוספים לפרויקט Firebase, אפשר להשתמש באחת מהשיטות הבאות:
משתמשים בתהליך העבודה בדף Hosting בקטע Hosting & Serverless במסוף Firebase.
משתמשים בפקודת Firebase CLI:
firebase hosting:sites:create SITE_IDמשתמשים ב-Hosting API בארכיטקטורת REST:
projects.sites.create
בכל אחת מהשיטות האלה, תציינו SITE_ID שמשמש לבניית שמות הדומיין המשניים שמוקצים כברירת מחדל לאתר ב-Firebase:
SITE_ID.web.appSITE_ID.firebaseapp.com
מכיוון שמשתמשים ב-SITE_ID עבור כתובות ה-URL האלה, מזהה האתר צריך לעמוד בדרישות הבאות:
- צריך להזין תווית שם מארח תקינה, כלומר היא לא יכולה להכיל את התווים
.,_וכו'. - הערך חייב להיות באורך של 30 תווים או פחות
- חייב להיות ייחודי באופן גלובלי ב-Firebase
בנוסף, אפשר להוסיף דומיינים מותאמים אישית לכל אתר כדי להציג את אותו תוכן ואת אותה הגדרה בכמה כתובות URL.
מחיקת אתר משני
כדי למחוק אתרים לא רצויים מפרויקט Firebase, משתמשים באחת מהשיטות הבאות:
משתמשים בתהליך העבודה בדף Hosting בקטע Hosting & Serverless במסוף Firebase.
משתמשים בפקודת Firebase CLI:
firebase hosting:sites:delete SITE_IDמשתמשים ב-Hosting API בארכיטקטורת REST:
projects.sites.delete
שימו לב שאי אפשר למחוק את אתר ברירת המחדל, שיש לו את אותו SITE_ID כמו מזהה פרויקט Firebase.
שלב 3: הגדרת יעדי פריסה לאתרים
אם יש לכם כמה אתרים ואתם מריצים פקודות פריסה של Firebase CLI, ה-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 וההגדרות של האתר default Hosting בכתובת URL לתצוגה מקדימה |
firebase hosting:channel:deploy \ |
פריסת Hostingהתוכן וההגדרות של האתר שצוין בכתובת URL לתצוגה מקדימהHosting |
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 שצוין בכתובת URL שמתארחת באופן מקומי Hosting |