مدیریت زنده & پیش نمایش کانال ها، نسخه ها و نسخه های سایت شما

Firebase Hosting از طریق کنسول Firebase و رابط خط فرمان Firebase CLI) ابزارهایی را برای مدیریت کانال‌ها، نسخه‌ها و نسخه‌های سایت Hosting شما فراهم می‌کند.

مروری بر زیرساخت Hosting

آشنایی با زیرساخت Hosting به شما کمک می‌کند تا گزینه‌های مدیریتی شرح داده شده در این صفحه را درک کنید.

هر پروژه Firebase دارای یک سایت Hosting پیش‌فرض با دسترسی به تمام منابع پروژه (پایگاه‌های داده، احراز هویت، توابع و غیره) است. یک سایت شامل یک یا چند کانال است که هر کانال با یک URL مرتبط است که محتوای خاصی را ارائه می‌دهد و یک پیکربندی Hosting .

تصویری از <span class= سلسله مراتب میزبانی فایربیس" />

هر سایت Hosting دارای یک کانال "زنده" است که محتوا و پیکربندی Hosting را در (1) زیر دامنه‌های ارائه شده توسط Firebase سایت ( SITE_ID .web.app و SITE_ID .firebaseapp.com ) و (2) هر دامنه سفارشی متصل ارائه می‌دهد. همچنین می‌توانید به صورت اختیاری کانال‌های "پیش‌نمایش" ایجاد کنید که محتوا و پیکربندی خاص خود را در "URL های پیش‌نمایش" موقت و قابل اشتراک‌گذاری ارائه می‌دهند ( SITE_ID -- CHANNEL_ID - RANDOM_HASH .web.app ).

محتوا و پیکربندی ارائه شده توسط هر کانال در یک شیء نسخه بسته‌بندی می‌شود که دارای یک شناسه منحصر به فرد است. هنگام استقرار در سایت خود، Firebase یک شیء انتشار ایجاد می‌کند که به یک نسخه خاص اشاره می‌کند. یک انتشار شامل ابرداده‌هایی در مورد استقرار است، مانند اینکه چه کسی و چه زمانی مستقر شده است.

از داشبورد Hosting پروژه Firebase خود، می‌توانید تاریخچه کاملی از انتشارهای کانال زنده خود را در جدول تاریخچه انتشار مشاهده کنید. اگر چندین سایت Hosting دارید، برای مشاهده تاریخچه انتشار سایت مورد نظر، روی View کلیک کنید. اگر کانال‌های پیش‌نمایشی دارید، آنها نیز در داشبورد Hosting نمایش داده می‌شوند.

مدیریت تنظیمات کانال

برای هر کانال از سایت خود، می‌توانید تنظیمات آن را کنترل کنید. برخی از تنظیمات، مانند تاریخ انقضای کانال، فقط برای کانال‌های پیش‌نمایش قابل اجرا هستند.

تعداد نسخه‌ها را برای نگه داشتن محدود کنید

هر بار که شما در یک کانال مستقر می‌شوید (و یک نسخه منتشر می‌کنید)، Hosting نسخه مرتبط با نسخه قبلی را در فضای ذخیره‌سازی Hosting پروژه شما نگه می‌دارد. می‌توانید تعداد نسخه‌هایی را که برای هر کانال در پروژه خود، چه کانال‌های زنده و چه کانال‌های پیش‌نمایش، نگه می‌دارید، تنظیم کنید.

  • چرا Hosting نسخه‌های قبلی را نگه می‌دارد؟
    برای کانال زنده شما، نگه داشتن نسخه‌های قبلی به شما این امکان را می‌دهد که در صورت نیاز به نسخه قبلی سایت خود برگردید . برای کانال‌های پیش‌نمایش، امکان بازگشت به نسخه قبلی هنوز در دسترس نیست.

  • چرا تعداد نسخه‌های منتشر شده برای نگه داشتن را محدود کنیم؟
    این ویژگی می‌تواند به شما در کنترل سطح استفاده از فضای ذخیره‌سازی Hosting پروژه‌تان کمک کند، زیرا محتوای نسخه‌های قبلی در این فضای ذخیره‌سازی نگهداری می‌شود. می‌توانید فضای ذخیره‌سازی Hosting خود را از تب Storage در کنسول نظارت کنید.

  • چه اتفاقی می‌افتد وقتی تعداد نسخه‌ها را محدود می‌کنید تا نگه دارید؟
    وقتی محدودیتی برای نگهداری نسخه‌ها تعیین می‌کنید، محتوای هر نسخه‌ای که از محدودیت تعیین‌شده شما بیشتر باشد، برای حذف برنامه‌ریزی می‌شود و ابتدا از قدیمی‌ترین نسخه‌ها شروع می‌شود .

در اینجا نحوه تنظیم محدودیت ذخیره نسخه برای یک کانال آورده شده است:

  1. در کنسول Firebase ، به کادر محاوره‌ای تنظیمات ذخیره‌سازی نسخه دسترسی پیدا کنید:

    • برای کانال زنده شما
      در جدول تاریخچه انتشار (Release History ) سایت خود، روی کلیک کنید، سپس تنظیمات ذخیره‌سازی انتشار (Release storage settings) را انتخاب کنید.

    • برای هر کانال پیش‌نمایش
      در ردیف مربوط به کانال پیش‌نمایش، روی کلیک کنید، سپس تنظیمات کانال را انتخاب کنید.

  2. تعداد نسخه‌هایی را که می‌خواهید نگه دارید وارد کنید، سپس روی ذخیره کلیک کنید.

تنظیم انقضای یک کانال پیش‌نمایش

به طور پیش‌فرض، یک کانال پیش‌نمایش ۷ روز پس از تاریخ ایجاد منقضی می‌شود، اما کانال زنده سایت شما هرگز منقضی نخواهد شد.

وقتی یک کانال پیش‌نمایش منقضی می‌شود، کانال، همراه با نسخه‌های منتشر شده و مرتبط با آن، برای حذف ظرف ۲۴ ساعت برنامه‌ریزی می‌شوند. URL پیش‌نمایش مرتبط نیز غیرفعال می‌شود. یک استثنا برای این حذف نسخه زمانی است که یک نسخه با نسخه دیگری مرتبط باشد (برای مثال، اگر شما یک نسخه را از یک کانال به کانال دیگری در همان سایت کپی کنید).

Hosting از دو روش مختلف برای کنترل انقضای یک کانال پشتیبانی می‌کند:

  • کنسول Firebase
    در ردیف مربوط به کانال پیش‌نمایش، روی کلیک کنید، سپس تنظیمات کانال را انتخاب کنید. تاریخ و زمان انقضا را وارد کنید.

  • رابط خط Firebase
    هنگام استقرار در کانال پیش‌نمایش خود، پرچم --expires DURATION را به عنوان مثال ارسال کنید:

    firebase hosting:channel:deploy new-awesome-feature --expires 7d

    انقضا می‌تواند تا ۳۰ روز از تاریخ استقرار باشد. از h برای ساعت، d برای روز و w برای هفته استفاده کنید (برای مثال، به ترتیب 12h ، 7d ، 2w ).

کپی کردن یک نسخه از یک کانال به کانال دیگر

شما می‌توانید یک نسخه پیاده‌سازی شده را از یک کانال به کانال دیگری کپی کنید. می‌توانید آن را در کانال‌های زنده یا پیش‌نمایش، در سایت‌های Hosting یا حتی در پروژه‌های Firebase کپی کنید.

دستور clone همچنین به کانال "هدف" منتقل می‌شود تا محتوا و پیکربندی Hosting کلون شده به طور خودکار در URL مرتبط با کانال "هدف" ارائه شود.

این ویژگی برای ردیابی نسخه یا اگر می‌خواهید مطمئن شوید که دقیقاً همان محتوایی را که در کانال دیگری مشاهده و/یا آزمایش کرده‌اید، به کار می‌گیرید، مفید است. در اینجا چند مثال آورده شده است:

  • کپی از یک کانال پیش‌نمایش «پرسش و پاسخ» به کانال زنده سایت شما (که در حال پخش زنده است!)

  • کپی کردن از کانال زنده سایت شما به یک کانال پیش‌نمایش «اشکال‌زدایی» (مانند قبل از بازگرداندن سایت به حالت اولیه)

  • از یک کانال در پروژه "staging" فایربیس خود، به یک کانال پیش‌نمایش در پروژه "prod" فایربیس خود، کپی بگیرید.

برای کلون کردن یک نسخه، دستور زیر را از هر دایرکتوری اجرا کنید:

firebase hosting:clone SOURCE_SITE_ID:SOURCE_CHANNEL_ID TARGET_SITE_ID:TARGET_CHANNEL_ID

هر متغیر را با مقادیر زیر جایگزین کنید:

  • SOURCE_SITE_ID و TARGET_SITE_ID : این‌ها شناسه‌های سایت‌های Hosting هستند که شامل کانال‌ها می‌شوند.

    • برای سایت Hosting پیش‌فرض خود، از شناسه پروژه Firebase خود استفاده کنید.
    • شما می‌توانید سایت‌هایی را که در یک پروژه Firebase یا حتی در پروژه‌های Firebase مختلف هستند، Hosting کنید.
  • SOURCE_CHANNEL_ID و TARGET_CHANNEL_ID : این‌ها شناسه‌های کانال‌ها هستند.

    • برای کانال زنده، از live به عنوان شناسه کانال استفاده کنید.
    • اگر کانال "هدف" مشخص شده هنوز وجود نداشته باشد، این دستور قبل از استقرار در آن، کانال را ایجاد می‌کند.

به نسخه قبلی سایت خود برگردید

می‌توانید برای ارائه نسخه قبلی کانال زنده سایت خود، به عقب برگردید. این اقدام در صورتی مفید است که نسخه فعلی شما مشکلی داشته باشد و بخواهید آن را به نسخه فعال و شناخته‌شده‌ای از سایت خود برگردانید. یا شاید سایت شما محتوای موقت را برای یک تعطیلات یا رویداد ویژه ارائه می‌داد، اما اکنون می‌خواهید آن را به محتوای «معمولی» خود برگردانید.

با بازگرداندن به نسخه قبلی، شما یک نسخه جدید ایجاد می‌کنید که همان نسخه از محتوا را مانند نسخه قبلی ارائه می‌دهد. در جدول تاریخچه انتشار شما، هر دو نسخه، شناسه نسخه یکسانی را فهرست می‌کنند.

نحوه‌ی برگرداندن به حالت قبل به این صورت است:

  1. در کنسول Firebase ، در جدول تاریخچه انتشار سایت خود، نشانگر ماوس را روی نسخه قبلی که می‌خواهید به آن برگردید، نگه دارید.

  2. روی کلیک کنید، سپس گزینه‌ی Roll back را انتخاب کنید.

حذف دستی یک نسخه

ممکن است لازم باشد برای آزاد کردن فضای Hosting برای پروژه خود، یک نسخه را به صورت دستی از کانال زنده خود حذف کنید. شما فقط می‌توانید نسخه‌های قبلی را حذف کنید، نه نسخه‌ای که در حال حاضر در سایت زنده شما ارائه می‌شود.

وقتی یک نسخه را حذف می‌کنید، در واقع محتوای آن را حذف می‌کنید که قرار است ظرف ۲۴ ساعت حذف شود. خود شیء نسخه نگه داشته می‌شود تا بتوانید فراداده‌های آن (چه کسی مستقر کرده و چه زمانی مستقر شده‌اند) را مشاهده کنید.

نحوه حذف یک نسخه به شرح زیر است:

  1. در کنسول Firebase ، در جدول تاریخچه انتشار سایت خود، نشانگر ماوس را روی ورودی انتشار قبلی که می‌خواهید حذف کنید، نگه دارید.

  2. روی کلیک کنید، سپس Delete را انتخاب کنید.

حذف دستی فایل‌ها

در Firebase Hosting ، روش اصلی برای حذف فایل‌های انتخاب شده از یک سایت مستقر، حذف فایل‌ها به صورت محلی و سپس استقرار مجدد آن‌ها است.

حذف دستی کانال پیش‌نمایش

شما می‌توانید با کلیک روی کانالی که می‌خواهید پیش‌نمایش آن را ببینید، پیش‌نمایش کانال‌های خود را مشاهده کنید. از این نما، می‌توانید جدیدترین استقرارها و نسخه‌های منتشر شده مربوط به کانال خاص را مشاهده، حذف و بازگردانید. می‌توانید یک کانال پیش‌نمایش را حذف کنید، اما نمی‌توانید کانال زنده سایت خود را حذف کنید.

وقتی یک کانال پیش‌نمایش را حذف می‌کنید، آن کانال، به همراه نسخه‌های منتشر شده و مرتبط با آن، برای حذف ظرف ۲۴ ساعت برنامه‌ریزی می‌شوند. URL پیش‌نمایش مرتبط نیز غیرفعال می‌شود. یک استثنا در حذف نسخه زمانی است که یک نسخه با نسخه دیگری مرتبط باشد (برای مثال، اگر شما یک نسخه را از یک کانال به کانال دیگری در همان سایت کپی کنید).

Hosting از دو روش مختلف برای حذف کانال پیش‌نمایش پشتیبانی می‌کند:

  • کنسول Firebase
    در ردیف مربوط به کانال پیش‌نمایش، روی کلیک کنید، سپس گزینه Delete channel را انتخاب کنید. حذف را تأیید کنید.

  • رابط خط Firebase
    دستور زیر را از هر دایرکتوری اجرا کنید:

    firebase hosting:channel:delete CHANNEL_ID

دستورات CLI برای کانال‌های پیش‌نمایش و شبیه‌سازی

دستورات مربوط به کانال‌های پیش‌نمایش

اگر چندین سایت Hosting دارید، همه دستورات مربوط به کانال‌های پیش‌نمایش از استقرار اهداف پشتیبانی می‌کنند.

فرمان توضیحات
firebase hosting:channel:create CHANNEL_ID

با استفاده از CHANNEL_ID مشخص شده، یک کانال پیش‌نمایش جدید در سایت Hosting پیش‌فرض ایجاد می‌کند.

این دستور در کانال اعمال نمی‌شود.

firebase hosting:channel:delete CHANNEL_ID

کانال پیش‌نمایش مشخص‌شده را حذف می‌کند

شما نمی‌توانید کانال زنده یک سایت را حذف کنید.

firebase hosting:channel:deploy CHANNEL_ID

محتوا و پیکربندی Hosting شما را در کانال پیش‌نمایش مشخص‌شده مستقر می‌کند.

اگر کانال پیش‌نمایش هنوز وجود نداشته باشد، این دستور قبل از استقرار در کانال، کانال را در سایت Hosting پیش‌فرض ایجاد می‌کند.

firebase hosting:channel:list تمام کانال‌ها (از جمله کانال «زنده») را در سایت Hosting پیش‌فرض فهرست می‌کند
firebase hosting:channel:open CHANNEL_ID مرورگر را به آدرس اینترنتی کانال مشخص شده باز می‌کند یا اگر باز کردن در مرورگر امکان‌پذیر نباشد، آدرس اینترنتی را برمی‌گرداند

دستورات مربوط به شبیه‌سازی نسخه

فرمان توضیحات
firebase hosting:clone \
SOURCE_SITE_ID : SOURCE_CHANNEL_ID \
TARGET_SITE_ID : TARGET_CHANNEL_ID

آخرین نسخه پیاده‌سازی شده روی کانال «منبع» مشخص شده را به کانال «هدف» مشخص شده کپی می‌کند.

این دستور همچنین به کانال "هدف" مشخص شده ارسال می‌شود. اگر کانال "هدف" هنوز وجود نداشته باشد، این دستور قبل از ارسال به کانال، یک کانال پیش‌نمایش جدید در سایت Hosting "هدف" ایجاد می‌کند.

firebase hosting:clone \
SOURCE_SITE_ID :@ VERSION_ID \
TARGET_SITE_ID : TARGET_CHANNEL_ID

نسخه مشخص شده را به کانال "هدف" مشخص شده کلون می‌کند.

این دستور همچنین به کانال "هدف" مشخص شده ارسال می‌شود. اگر کانال "هدف" هنوز وجود نداشته باشد، این دستور قبل از ارسال به کانال، یک کانال پیش‌نمایش جدید در سایت Hosting "هدف" ایجاد می‌کند.

می‌توانید VERSION_ID را در داشبورد Hosting کنسول Firebase پیدا کنید.