قبل از استقرار در سایت زنده خود، باید تغییرات خود را مشاهده و آزمایش کنید. Firebase Hosting به شما امکان میدهد تغییرات را به صورت محلی مشاهده و آزمایش کنید و با منابع پروژه شبیهسازی شده backend تعامل داشته باشید. اگر به همتیمیهای خود نیاز دارید که تغییرات شما را مشاهده و آزمایش کنند، Hosting میتواند URLهای پیشنمایش موقت و قابل اشتراکگذاری برای سایت شما ایجاد کند. ما حتی از ادغام GitHub برای استقرار از طریق درخواست pull پشتیبانی میکنیم.
قبل از اینکه شروع کنی
مراحل ذکر شده در صفحه شروع Hosting وب ، به ویژه وظایف زیر را انجام دهید:
- Firebase CLI را به آخرین نسخه نصب یا بهروزرسانی کنید.
- دایرکتوری پروژه محلی (حاوی محتوای برنامه شما) را به پروژه Firebase خود متصل کنید.
شما میتوانید به صورت اختیاری محتوا و پیکربندی Hosting برنامه خود را مستقر کنید، اما این پیشنیاز مراحل این صفحه نیست.
مرحله ۱: تست محلی
اگر میخواهید برنامههایتان را سریع اجرا کنید یا میخواهید برنامهتان با منابع شبیهسازیشدهی پروژهی backend تعامل داشته باشد، میتوانید محتوای Hosting و پیکربندی خود را بهصورت محلی آزمایش کنید. هنگام آزمایش بهصورت محلی، Firebase برنامهی وب شما را در یک URL میزبانیشدهی محلی ارائه میدهد.
Hosting بخشی از Firebase Local Emulator Suite است که به برنامه شما امکان میدهد با محتوا و پیکربندی شبیهسازیشده Hosting شما و همچنین منابع پروژه شبیهسازیشده (توابع، پایگاههای داده و قوانین) تعامل داشته باشد.
- (اختیاری) به طور پیشفرض، برنامهی میزبانیشدهی محلی شما با منابع پروژهی واقعی ، نه شبیهسازیشده (توابع، پایگاه داده، قوانین و غیره) تعامل خواهد داشت. در عوض، میتوانید به صورت اختیاری برنامهی خود را به منابع پروژهی شبیهسازیشدهای که پیکربندی کردهاید، متصل کنید. اطلاعات بیشتر: Realtime Database | Cloud Firestore | Cloud Functions 
- از ریشه دایرکتوری پروژه محلی خود، دستور زیر را اجرا کنید: - firebase emulators:start 
- برنامه وب خود را با استفاده از آدرس اینترنتی محلی که توسط رابط خط فرمان (CLI) برگردانده میشود (معمولاً - http://localhost:5000) باز کنید.
- برای بهروزرسانی URL محلی با تغییرات، مرورگر خود را بهروزرسانی کنید. 
تست از سایر دستگاههای محلی
 به طور پیشفرض، شبیهسازها فقط به درخواستهای localhost پاسخ میدهند. این بدان معناست که شما میتوانید از طریق مرورگر وب رایانه خود به محتوای میزبانیشده خود دسترسی داشته باشید، اما از سایر دستگاههای موجود در شبکه خود نمیتوانید. اگر میخواهید از سایر دستگاههای محلی آزمایش کنید، firebase.json خود را به این صورت پیکربندی کنید:
"emulators": {
    // ...
    "hosting": {
      "port": 5000,
      "host": "0.0.0.0"
    }
  }
 هنگام استفاده از firebase serve ، برنامه شما برای محتوا و پیکربندی (و به صورت اختیاری توابع) Hosting با یک backend شبیهسازی شده تعامل دارد، اما برای سایر منابع پروژه با backend واقعی شما تعامل دارد.
- از ریشه دایرکتوری پروژه محلی خود، دستور زیر را اجرا کنید: - firebase serve --only hosting 
- برنامه وب خود را با استفاده از آدرس اینترنتی محلی که توسط رابط خط فرمان (CLI) برگردانده میشود (معمولاً - http://localhost:5000) باز کنید.
- برای بهروزرسانی URL محلی با تغییرات، مرورگر خود را بهروزرسانی کنید. 
 استفاده از firebase serve برای تست از سایر دستگاههای محلی
 به طور پیشفرض، firebase serve فقط به درخواستهای localhost پاسخ میدهد. این بدان معناست که شما میتوانید از طریق مرورگر وب رایانه خود به محتوای میزبانی شده خود دسترسی داشته باشید، اما از سایر دستگاههای موجود در شبکه خود نمیتوانید به آن دسترسی داشته باشید. اگر میخواهید از سایر دستگاههای محلی تست کنید، از پرچم --host مانند زیر استفاده کنید:
firebase serve --host 0.0.0.0 // accepts requests to any host
مرحله ۲: پیشنمایش و اشتراکگذاری
اگر میخواهید دیگران قبل از انتشار رسمی، تغییرات برنامه وب شما را مشاهده کنند، میتوانید از کانالهای پیشنمایش استفاده کنید.
پس از اینکه برنامه را در یک کانال پیشنمایش مستقر کردید، فایربیس برنامه وب شما را در یک "URL پیشنمایش" که یک URL موقت و قابل اشتراکگذاری است، ارائه میدهد. هنگام استفاده از URL پیشنمایش، برنامه وب شما برای تمام منابع پروژه (به استثنای هرگونه تابع "پینشده" در پیکربندی بازنویسیهای شما ) با backend واقعی شما تعامل دارد.
توجه داشته باشید که اگرچه حدس زدن URL های پیش نمایش دشوار است (زیرا حاوی یک هش تصادفی هستند)، اما عمومی هستند. بنابراین، هر کسی که URL را بداند میتواند به آن دسترسی پیدا کند.
- از ریشه دایرکتوری پروژه محلی خود، دستور زیر را اجرا کنید: - firebase hosting:channel:deploy CHANNEL_ID - CHANNEL_ID با یک رشته بدون فاصله جایگزین کنید (برای مثال، - feature_mission-2-mars). این شناسه برای ساخت URL پیشنمایش مرتبط با کانال پیشنمایش استفاده خواهد شد.
- برنامه وب خود را در آدرس پیشنمایشی که توسط CLI برگردانده شده است، باز کنید. چیزی شبیه به این خواهد بود: - PROJECT_ID -- CHANNEL_ID - RANDOM_HASH .web.app
- برای بهروزرسانی URL پیشنمایش خود با تغییرات، همان دستور را دوباره اجرا کنید. مطمئن شوید که همان - CHANNEL_IDدر دستور مشخص میکنید.
درباره مدیریت کانالهای پیشنمایش ، از جمله نحوه تنظیم انقضای کانال، اطلاعات کسب کنید.
Firebase Hosting از یک اقدام گیتهاب پشتیبانی میکند که به طور خودکار یک URL پیشنمایش را هنگام اعمال تغییرات در یک درخواست pull ایجاد و بهروزرسانی میکند. نحوه راهاندازی و استفاده از این اقدام گیتهاب را بیاموزید.
مرحله ۳: استقرار زنده
وقتی آماده شدید که تغییرات خود را با جهان به اشتراک بگذارید، محتوای Hosting و پیکربندی خود را در کانال زنده خود مستقر کنید. فایربیس بسته به مورد استفاده شما، گزینههای مختلفی را برای این مرحله ارائه میدهد (به گزینههای زیر مراجعه کنید).
گزینه ۱: کپی کردن از یک کانال پیشنمایش به کانال زنده شما
این گزینه این اطمینان را به شما میدهد که دقیقاً همان محتوا و پیکربندی که در کانال پیشنمایش آزمایش کردهاید را در کانال زنده خود مستقر میکنید. درباره کلون کردن نسخهها بیشتر بدانید.
- از هر دایرکتوری، دستور زیر را اجرا کنید: - firebase hosting:clone SOURCE_SITE_ID:SOURCE_CHANNEL_ID TARGET_SITE_ID:live - هر متغیر را با مقادیر زیر جایگزین کنید: - SOURCE_SITE_ID و TARGET_SITE_ID : اینها شناسههای سایتهای Hosting هستند که شامل کانالها میشوند. - برای سایت Hosting پیشفرض خود، از شناسه پروژه Firebase خود استفاده کنید.
- شما میتوانید سایتهایی را مشخص کنید که در یک پروژه Firebase یا حتی در پروژههای Firebase مختلف هستند.
 
- SOURCE_CHANNEL_ID : این شناسه کانالی است که در حال حاضر نسخهای را که میخواهید در کانال زنده خود مستقر کنید، ارائه میدهد. -  برای کانال زنده، از liveبه عنوان شناسه کانال استفاده کنید.
 
-  برای کانال زنده، از 
 
- تغییرات خود را مشاهده کنید (مرحله بعدی). 
گزینه ۲: از دایرکتوری پروژه محلی خود به کانال زنده خود منتقل کنید
این گزینه به شما انعطافپذیری لازم را برای تنظیم پیکربندیهای خاص کانال زنده یا استقرار حتی اگر از کانال پیشنمایش استفاده نکرده باشید، میدهد.
- از ریشه دایرکتوری پروژه محلی خود، دستور زیر را اجرا کنید: - firebase deploy --only hosting 
- تغییرات خود را مشاهده کنید (مرحله بعدی). 
مرحله ۴: تغییرات خود را در سایت زنده خود مشاهده کنید
هر دو گزینه بالا، محتوا و پیکربندی Hosting شما را در سایتهای زیر مستقر میکنند:
- زیر دامنههای ارائه شده توسط Firebase برای سایت Hosting پیشفرض شما و هر سایت Hosting اضافی: 
 - SITE_ID .web.app(مانند- PROJECT_ID .web.app)
 - SITE_ID .firebaseapp.com(مانند- PROJECT_ID .firebaseapp.com)
- هر دامنه سفارشی که به سایت(های) Hosting خود متصل کردهاید 
برای محدود کردن استقرار به یک سایت Hosting خاص، یک هدف استقرار را در دستور CLI خود مشخص کنید .
سایر فعالیتها و اطلاعات مربوط به استقرار
برای استقرار، نظر اضافه کنید
شما میتوانید به صورت اختیاری یک نظر به یک استقرار اضافه کنید. این نظر به همراه سایر اطلاعات استقرار در داشبورد Hosting در کنسول Firebase نمایش داده میشود. برای مثال:
firebase deploy --only hosting -m "Deploying the best new feature ever."
اضافه کردن وظایف اسکریپتشده قبل و بعد از استقرار
 شما میتوانید به صورت اختیاری اسکریپتهای shell را به دستور firebase deploy متصل کنید تا وظایف predeploy یا postdeploy را انجام دهید. برای مثال، یک قلاب postdeploy میتواند مدیران را از استقرار محتوای جدید سایت مطلع کند. برای جزئیات بیشتر به مستندات Firebase CLI مراجعه کنید.
ذخیره سازی محتوای مستقر شده
وقتی درخواستی برای محتوای استاتیک ارسال میشود، Firebase Hosting به طور خودکار محتوا را در CDN ذخیره میکند. اگر محتوای سایت خود را مجدداً مستقر کنید، Firebase به طور خودکار تمام محتوای استاتیک ذخیره شده شما را در CDN پاک میکند تا درخواستهای جدید محتوای جدید شما را دریافت کنند.
توجه داشته باشید که میتوانید ذخیرهسازی محتوای پویا را پیکربندی کنید.
سرویسدهی از طریق HTTPS
مطمئن شوید که تمام منابع خارجی که در Firebase Hosting میزبانی نمیشوند، از جمله هرگونه اسکریپت خارجی، از طریق SSL (HTTPS) بارگذاری میشوند. اکثر مرورگرها به کاربران اجازه بارگذاری "محتوای ترکیبی" (ترافیک SSL و غیر SSL) را نمیدهند.
حذف فایلها
در Firebase Hosting ، روش اصلی برای حذف فایلهای انتخاب شده از یک سایت مستقر، حذف فایلها به صورت محلی و سپس استقرار مجدد آنها است.
مراحل بعدی
- با GitHub ادغام شوید و با تنظیم GitHub Action، محتوای پیشنمایششده خود را تکرار کنید. 
- درباره قابلیتهای بیشتر میزبانی اطلاعات کسب کنید: 
- نگاهی به مستندات کامل Firebase CLI بیندازید. 
- برای راهاندازی برنامه خود آماده شوید: - هشدارهای بودجه را برای پروژه خود در کنسول Google Cloud تنظیم کنید.
- داشبورد «مصرف و پرداخت» را در کنسول Firebase زیر نظر داشته باشید تا تصویری کلی از میزان مصرف پروژه خود در چندین سرویس فایربیس داشته باشید. همچنین میتوانید برای اطلاعات دقیقتر در مورد مصرف، از داشبورد « مصرف Hosting دیدن کنید.
- چک لیست راه اندازی Firebase را مرور کنید.