Canlı yayınları yönetin siteniz için kanalları, sürümleri ve sürümleri önizleme

Firebase Hosting, Hosting sitenizin kanallarını, sürümlerini ve versiyonlarını yönetmek için hem Firebase konsolu hem de Firebase KSA aracılığıyla araçlar sağlar.

Hosting altyapısına genel bakış

Hosting altyapısını anlamak, bu sayfada açıklanan yönetim seçeneklerini anlamanıza yardımcı olur.

Her Firebase projesinin, projenin tüm kaynaklarına (veritabanları, kimlik doğrulama, işlevler vb.) erişimi olan varsayılan bir Hosting sitesi vardır. Bir site bir veya daha fazla kanal içerir. Bu kanallardaki her kanal, belirli içeriği sunan bir URL ve Hosting yapılandırması ile ilişkilendirilir.

<span class=Firebase Hosting hiyerarşisi" />

Her Hosting sitesinde, içerik yayınlayan "canlı" bir kanal ve (1) sitenin Firebase tarafından sağlanan alt alan adlarında (SITE_ID.web.app ve SITE_ID.firebaseapp.com) ve (2) bağlı özel alanlarda bir Hosting yapılandırması bulunur. İsterseniz geçici ve paylaşılabilir "önizleme URL'lerinde" (SITE_ID--CHANNEL_ID-RANDOM_HASH.web.app) kendi içeriklerini ve yapılandırmalarını yayınlayan "önizleme" kanalları da oluşturabilirsiniz.

Her kanalın yayınladığı içerik ve yapılandırma, benzersiz bir tanımlayıcıya sahip bir sürüm nesnesine paketlenir. Sitenize dağıttığınızda Firebase, belirli bir sürümü işaret eden bir sürüm nesnesi oluşturur. Sürüm, dağıtımla ilgili meta verileri (ör. dağıtımı yapan kullanıcı ve dağıtım zamanı) içerir.

Firebase projenizin Hosting kontrol panelinde, canlı kanalınızın yayınlamalarının tam geçmişini Yayın geçmişi tablosunda görebilirsiniz. Birden fazla Hosting siteniz varsa yayın geçmişini görmek için istediğiniz sitenin Göster'i tıklayın. Önizleme kanallarınız varsa bunlar Hosting kontrol panelinde de gösterilir.

Kanal ayarlarını yönetme

Sitenizdeki her kanalın ayarlarını kontrol edebilirsiniz. Kanal son geçerlilik tarihi gibi bazı ayarlar yalnızca önizleme kanalları için geçerlidir.

Saklanacak sürüm sayısını sınırlandırın

Bir kanala her dağıttığınızda (ve sürüm oluşturduğunuzda) Hosting, önceki sürümle ilişkili sürümü projenizin Hosting depolama alanında saklar. Projenizdeki her kanal için (hem canlı hem de önizleme kanalları) saklanacak yayın sayısını ayarlayabilirsiniz.

  • Hosting neden önceki sürümleri saklar?
    Canlı kanalınızda önceki sürümleri koruyarak gerekirse sitenizin önceki bir sürümüne geri dönebilirsiniz. Önizleme kanallarınızda geri alma işlemi henüz kullanılamıyor.

  • Saklanacak sürüm sayısını neden sınırlamalısınız?
    Bu özellik, önceki sürümlerin içeriği bu depolama alanında saklandığından projenizin Hosting depolama alanının kullanım düzeyini kontrol etmenize yardımcı olabilir. Hosting depolama alanınızı, konsoldaki Depolama sekmesinden izleyebilirsiniz.

  • Yayınlanacak yayınları sınırladığınızda ne olur?
    Saklanacak sürümler için bir sınır belirlediğinizde, belirlediğiniz sınırın üzerindeki sürümlerin içeriği, en eski sürümlerden başlayarak silinecek şekilde planlanır.

Bir kanalın sürüm depolama alanı sınırını ayarlamak için:

  1. Firebase konsolunda, sürüm depolama alanı ayarı iletişim kutusuna erişin:

    • Canlı kanalınız için
      Sitenizin Yayın Geçmişi tablosunda simgesini tıklayın ve Yayın depolama alanı ayarları'nı seçin.

    • Tüm önizleme kanalları için
      Önizleme kanalının satırında simgesini tıklayın, ardından Kanal ayarları'nı seçin.

  2. Saklamak istediğiniz sürüm sayısını girip Kaydet'i tıklayın.

Önizleme kanalının geçerlilik süresini ayarlama

Varsayılan olarak, önizleme kanalının süresi oluşturulduğu tarihten itibaren 7 gün sonra dolar. Ancak sitenizin yayındaki kanalının süresi hiçbir zaman dolmaz.

Bir önizleme kanalının geçerlilik süresi dolduğunda, kanalın yanı sıra sürümleri ve ilişkili versiyonları 24 saat içinde silinir. İlişkili önizleme URL'si de devre dışı bırakılır. Bir sürümün başka bir sürümle ilişkilendirilmesi, sürüm silme işleminin istisnası olarak kabul edilir (örneğin, aynı sitedeki bir sürümü bir kanaldan diğerine klonlarsanız bu durum gerçekleşir).

Hosting, kanalın geçerlilik süresini kontrol etmenin iki farklı yolunu destekler:

  • Firebase konsolu
    Önizleme kanalının satırında simgesini tıklayın ve Kanal ayarları'nı seçin. Geçerlilik bitiş tarihini ve saatini girin.

  • Firebase CLI
    Önizleme kanalınıza dağıtım yaparken --expires DURATION işaretini iletin. Örneğin:

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

    Son kullanma tarihi, dağıtım tarihinden itibaren 30 gün olabilir. Saatler için h, günler için d ve haftalar için w kullanın (örneğin, sırasıyla 12h, 7d, 2w).

Sürümleri bir kanaldan diğerine klonlama

Bir kanalda dağıtılan sürümü farklı bir kanala kopyalayabilirsiniz. Canlı veya önizleme kanalları, Hosting siteleri ve hatta Firebase projeleri arasında içerikleri kopyalayabilirsiniz.

Klonlama komutu, kopyalanan Hosting içeriğin ve yapılandırmanın "hedef" kanalın ilişkili URL'sinde otomatik olarak yayınlanması için "hedef" kanala da dağıtır.

Bu özellik, sürüm izleme konusunda veya başka bir kanalda görüntülediğiniz ve/veya test ettiğiniz tam içeriğin dağıtımını yaptığınızdan emin olmak istiyorsanız kullanışlıdır. Aşağıda bazı örnekler verilmiştir:

  • "Soru-cevap" önizleme kanalını sitenizin canlı kanalına kopyalayın (canlı yayına geçme)

  • Sitenizin canlı kanalından "hata ayıklama" önizleme kanalına (ör. geri alma işleminden önce) kopyalama

  • "Hazırlık" Firebase projenizdeki bir kanaldan "ürün" Firebase projenizdeki bir önizleme kanalına klonlama

Bir sürümü klonlamak için herhangi bir dizinden aşağıdaki komutu çalıştırın:

firebase hosting:clone SOURCE_SITE_ID:SOURCE_CHANNEL_ID TARGET_SITE_ID:TARGET_CHANNEL_ID

Her yer tutucuyu aşağıdakiyle değiştirin:

  • SOURCE_SITE_ID ve TARGET_SITE_ID: Kanalları içeren Hosting sitelerinin kimlikleridir.

    • Varsayılan Hosting siteniz için Firebase proje kimliğinizi kullanın.
    • Aynı Firebase projesinde veya hatta farklı Firebase projelerinde yer alan Hosting siteleri belirtebilirsiniz.
  • SOURCE_CHANNEL_ID ve TARGET_CHANNEL_ID: Bunlar, kanalların tanımlayıcılarıdır.

    • Canlı bir kanal için kanal kimliği olarak live kullanın.
    • Belirtilen "hedef" kanal henüz mevcut değilse bu komut, kanala dağıtımdan önce kanalı oluşturur.

Sitenizin önceki bir sürümüne geri dönme

Sitenizin canlı kanalının önceki bir sürümünü yayınlamak için geri dönebilirsiniz. Mevcut sürümünüzde bir sorun varsa ve sitenizin bilinen bir çalışan sürümünü sunmak için geri çekmek istiyorsanız bu işlem yararlıdır. Siteniz bir tatil veya özel etkinlik için geçici içerik yayınladıysa ancak artık "normal" içeriğinizi yayınlamak istiyorsanız da bu özelliği kullanabilirsiniz.

Geri çekerek, önceki sürümle aynı içerik sürümüne sahip yeni bir sürüm oluşturursunuz. Sürüm geçmişi tablonuzda her iki sürüm de aynı sürüm tanımlayıcısını listeler.

Geri alma işlemini şu şekilde yapabilirsiniz:

  1. Firebase konsolunda, sitenizin Sürüm Geçmişi tablosunda, geri almak istediğiniz önceki sürüm girişinin üzerine gelin.

  2. simgesini tıklayın, ardından Geri döndür'ü seçin.

Bir sürümü manuel olarak silme

Projenizde Hosting depolama alanında yer açmak için canlı kanalınızdan bir sürümü manuel olarak silmeniz gerekebilir. Yalnızca yayındaki sitenizde sunulan sürümü değil, yalnızca önceki sürümleri silebilirsiniz.

Bir sürümü sildiğinizde aslında içeriğini silmiş olursunuz. İçerik, 24 saat içinde silinecek şekilde planlanır. Sürüm nesnesi, meta verilerini (kim tarafından ne zaman dağıtıldığını) görmeye devam edebilmeniz için saklanır.

Bir sürümü nasıl sileceğiniz aşağıda açıklanmıştır:

  1. Firebase konsolunda, sitenizin Sürüm Geçmişi tablosunda, silmek istediğiniz önceki sürüm girişinin üzerine gelin.

  2. simgesini tıklayın, ardından Sil'i seçin.

Dosyaları manuel olarak silme

Firebase Hosting'te, dağıtılmış bir sitedeki seçili dosyaları silme yönteminin birincil yolu, dosyaları yerel olarak silmek ve ardından yeniden dağıtmaktır.

Önizleme kanalını manuel olarak silme

Önizlemek istediğiniz kanalı tıklayarak kanallarınızın önizlemesini görebilirsiniz. Bu görünümde, belirli bir kanala bağlı en yeni dağıtımları ve sürümleri görebilir, silebilir ve geri alabilirsiniz. Bir önizleme kanalını silebilirsiniz ancak sitenizin canlı kanalını silemezsiniz.

Bir önizleme kanalını sildiğinizde bu kanal, sürümleri ve ilişkili sürümleriyle birlikte 24 saat içinde silinmek üzere planlanır. İlişkili önizleme URL'si de devre dışı bırakılır. Sürüm silme işleminin istisnası, bir sürümün başka bir sürümle ilişkilendirilmesidir (örneğin, bir sürümü aynı sitedeki bir kanaldan diğerine klonlarsanız bu durum gerçekleşir).

Hosting, bir önizleme kanalını silmek için iki farklı yöntemi destekler:

  • Firebase konsolu
    Önizleme kanalının satırında simgesini tıklayın ve Kanalı sil'i seçin. Silme işlemini onaylayın.

  • Firebase CLI
    Aşağıdaki komutu herhangi bir dizinden çalıştırın:

    firebase hosting:channel:delete CHANNEL_ID

Kanalları önizleme ve kanalları kopyalama için CLI komutları

Önizleme kanallarıyla ilgili komutlar

Birden fazla Hosting siteniz varsa önizleme kanallarıyla ilgili tüm komutlar dağıtım hedeflerini destekler.

Komut Açıklama
firebase hosting:channel:create CHANNEL_ID

Belirtilen CHANNEL_ID öğesini kullanarak varsayılan Hosting sitesinde yeni bir önizleme kanalı oluşturur.

Bu komut kanala dağıtılmaz.

firebase hosting:channel:delete CHANNEL_ID

Belirtilen önizleme kanalını siler.

Sitelerin canlı kanallarını silemezsiniz.

firebase hosting:channel:deploy CHANNEL_ID

Hosting içeriğinizi ve yapılandırmanızı belirtilen önizleme kanalına dağıtır

Önizleme kanalı henüz mevcut değilse bu komut, kanalı dağıtmadan önce varsayılan Hosting sitesinde oluşturur.

firebase hosting:channel:list Varsayılan Hosting sitesinde tüm kanalları ("canlı" kanal dahil) listeler
firebase hosting:channel:open CHANNEL_ID Belirtilen kanalın URL'sini açmak için bir tarayıcı açar veya tarayıcıda açmak mümkün değilse URL'yi döndürür

Sürüm klonlama komutları

Komut Açıklama
firebase hosting:clone \
SOURCE_SITE_ID:SOURCE_CHANNEL_ID \
TARGET_SITE_ID:TARGET_CHANNEL_ID

Belirtilen "kaynak" kanaldaki en son dağıtılan sürümü, belirtilen "hedef" kanala kopyalar

Bu komut, belirtilen "hedef" kanala da dağıtılır. "Hedef" kanal henüz mevcut değilse bu komut, kanala dağıtımdan önce "hedef" Hosting sitesinde yeni bir önizleme kanalı oluşturur.

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

Belirtilen sürümü, belirtilen "hedef" kanala klonlar

Bu komut, belirtilen "hedef" kanala da dağıtılır. "Hedef" kanal henüz mevcut değilse bu komut, kanala dağıtımdan önce "hedef" Hosting sitesinde yeni bir önizleme kanalı oluşturur.

VERSION_ID değerini Firebase konsolunun Hosting kontrol panelinde bulabilirsiniz.