شما می توانید یک یا چند سایت Firebase Hosting را در یک پروژه Firebase راه اندازی کنید. از آنجایی که سایت ها همه در یک پروژه Firebase هستند، همه سایت ها می توانند به منابع Firebase دیگر پروژه دسترسی داشته باشند.
- هر سایتی تنظیمات میزبانی مخصوص به خود را دارد.
- هر سایت مجموعه ای از مطالب خود را میزبانی می کند.
- هر سایت می تواند یک یا چند دامنه مرتبط داشته باشد.
با راه اندازی چندین سایت Hosting در یک پروژه Firebase، می توانید به راحتی منابع Firebase را بین سایت ها و برنامه های مرتبط به اشتراک بگذارید. به عنوان مثال، اگر وبلاگ، پنل مدیریت و برنامه عمومی خود را به عنوان سایت های جداگانه در یک پروژه Firebase راه اندازی کنید، همه آنها می توانند پایگاه داده کاربری Firebase Authentication یکسان را به اشتراک بگذارند، در حالی که دامنه یا محتوای منحصر به فرد خود را نیز دارند.
مرحله 1 : نسخه Firebase CLI خود را به روز کنید
با به روز رسانی به آخرین نسخه Firebase CLI به جدیدترین ویژگی های Firebase Hosting دسترسی پیدا کنید.
مرحله 2 : سایت های اضافی را اضافه کنید
سایت های اضافی را با استفاده از یکی از روش های زیر به پروژه Firebase اضافه کنید:
از گردش کار در صفحه Hosting کنسول 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
برای این URL ها استفاده می شود، شناسه سایت دارای شرایط زیر است:
- باید یک برچسب نام میزبان معتبر باشد، به این معنی که نمی تواند حاوی
.
،_
و غیره - باید 30 کاراکتر یا کمتر باشد
- باید در Firebase در سطح جهانی منحصر به فرد باشد
به هر سایت، میتوانید به صورت اختیاری دامنههای سفارشی اضافه کنید تا محتوا و پیکربندی یکسانی را به چندین URL ارائه کند.
حذف یک سایت ثانویه
سایت های ناخواسته را با استفاده از یکی از روش های زیر از پروژه Firebase حذف کنید:
از گردش کار در صفحه Hosting کنسول Firebase استفاده کنید
از دستور Firebase CLI استفاده کنید:
firebase hosting:sites:delete SITE_ID
از Hosting REST API استفاده کنید:
projects.sites.delete
توجه داشته باشید که نمیتوانید سایت پیشفرض را که همان SITE_ID
ID پروژه Firebase شما است، حذف کنید.
مرحله 3 : اهداف استقرار را برای سایت های خود تنظیم کنید
هنگامی که چندین سایت دارید و دستورات استقرار Firebase CLI را اجرا می کنید، CLI به راهی برای برقراری ارتباط بین تنظیماتی که باید در هر سایت مستقر شود نیاز دارد. با Deploy targets می توانید به طور منحصر به فرد یک سایت خاص را با یک TARGET_NAME
در فایل پیکربندی firebase.json
و در دستورات Firebase CLI خود برای آزمایش یا استقرار در سایت های خود شناسایی کنید.
برای ایجاد یک Deploy target و اعمال 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 : پیکربندی میزبانی هر سایت را تعریف کنید
هنگامی که در حال تعریف پیکربندی میزبانی آن در فایل firebase.json
خود هستید، از TARGET_NAME
اعمال شده یک سایت استفاده کنید.
اگر فایل
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 میزبانی محلی ارائه می دهد. |