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