Sitenizin canlı ve önizleme kanallarını, sürümlerini ve sürümlerini yönetme

Firebase Hosting, barındırma sitenizin kanallarını, sürümlerini ve sürümlerini yönetmek için hem Firebase konsolu hem de Firebase CLI aracılığıyla araçlar sunar.

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 bir varsayılan Hosting sitesi bulunur. Bir sitede bir veya daha fazla kanal bulunur. Bu kanallar, her kanal belirli bir içeriği sunan bir URL ve bir Hosting yapılandırması ile ilişkilendirilir.

Firebase Hosting hiyerarşisinin resmi

Her Hosting sitesinin, (1) sitenin Firebase tarafından sağlanan alt alan adlarında (SITE_ID.web.app ve SITE_ID.firebaseapp.com) ve (2) tüm bağlı özel alanlarda içerik yayınlayan bir "canlı" kanalı ve bir Barındırma yapılandırması vardır. Ayrıca isteğe bağlı olarak geçici, paylaşılabilir "önizleme URL'lerinde" (SITE_ID--CHANNEL_ID-RANDOM_HASH.web.app) kendi içeriklerini ve yapılandırmasını sunan "önizleme" kanalları da oluşturabilirsiniz.

Her bir kanalın sunduğu içerik ve yapılandırma, benzersiz tanımlayıcıya sahip bir sürüm nesnesinde paketlenir. Firebase, sitenize dağıtım yaptığınızda belirli bir sürüme işaret eden bir release nesnesi oluşturur. Sürümler, dağıtımla ilgili olarak kimin ne zaman dağıtıldığı gibi meta veriler içerir.

Firebase projenizin Barındırma kontrol panelinde canlı kanalınızdaki sürümlerin tüm geçmişini bir Sürüm geçmişi tablosunda görebilirsiniz. Birden fazla Barındırma siteniz varsa istediğiniz sitenin Görüntüle'yi tıklayarak sürüm geçmişini görebilirsiniz. Önizleme kanallarınız varsa bunlar da Hosting kontrol panelinde gösterilir.

Kanal ayarlarını yönetme

Sitenizin her bir kanalı için ayarlarını kontrol edebilirsiniz. Kanal geçerlilik süresi gibi bazı ayarlar yalnızca önizleme kanalları için geçerlidir.

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

Bir kanala her dağıtım yaptığınızda (ve sürüm oluşturduğunuzda) Hosting, önceki sürümle ilişkili sürümü projenizin Hosting depolama alanında tutar. Hem canlı hem de önizleme kanalları dahil olmak üzere projenizdeki her kanal için saklanacak sürüm sayısını ayarlayabilirsiniz.

  • Hosting önceki sürümleri neden muhafaza ediyor?
    Canlı kanalınızda önceki sürümleri saklayarak gerektiğinde sitenizin önceki bir sürümüne geri dönebilirsiniz. Önizleme kanallarınız için eski sürüme dönme özelliği henüz kullanılamamaktadır.

  • Saklanacak sürüm sayısını neden sınırlandırasınız?
    Önceki sürümlerin içeriği bu depolama alanında tutulduğundan bu özellik, projenizin Hosting depolama alanının kullanım düzeyini kontrol etmenize yardımcı olabilir. Barındırma depolama alanınızı konsoldaki Depolama sekmesinden izleyebilirsiniz.

  • Sürümleri saklanacak şekilde sınırlandırdığınızda ne olur?
    Saklanacak sürümler için bir sınır belirlediğinizde, en eski sürümlerden başlayarak belirlediğiniz sınırın üzerindeki tüm sürümlerin içeriği silinmek üzere planlanır.

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

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

    • Canlı kanalınız için
      Sitenizin Sürüm Geçmişi tablosunda simgesini tıklayın ve ardından Sürüm depolama alanı ayarları'nı seçin.

    • Herhangi bir önizleme kanalı için
      Önizleme kanalı satırında simgesini tıklayın ve 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 süre sonunu ayarlama

Varsayılan olarak, önizleme kanalının süresi oluşturulma tarihinden 7 gün sonra dolar, ancak sitenizin canlı kanalının süresi hiçbir zaman sona ermez.

Önizleme kanalının süresi dolduğunda kanal, sürümleri ve ilişkili sürümleriyle birlikte 24 saat içinde silinmek üzere programlanır. İlişkili önizleme URL'si de devre dışı bırakılır. Bu 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ı sitede bir kanaldan diğerine klonladığınızda).

Hosting, bir kanalın geçerlilik süresini kontrol etmek için iki farklı yöntemi destekler:

  • Firebase konsolu
    Önizleme kanalı satırında simgesini tıklayın ve ardından 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

    Geçerlilik süresi, dağıtım tarihinden itibaren 30 gün kadar sürebilir. Saat için h, gün için d ve hafta için w (sırasıyla örneğin 12h, 7d, 2w) kullanın.

Bir kanaldan diğerine bir sürüm klonlama

Dağıtılmış bir sürümü bir kanaldan farklı bir kanala klonlayabilirsiniz. Canlı veya önizleme kanallarında, Hosting siteleri genelinde ve hatta Firebase projeleri genelinde klonlama yapabilirsiniz.

Klon komutu aynı zamanda "hedef" kanala dağıtılır. Böylece, klonlanan Barındırma içeriği ve yapılandırması, "hedef" kanalın ilişkili URL'sinde otomatik olarak sunulur.

Bu özellik, sürüm izlemede veya başka bir kanalda görüntülediğiniz ve/veya test ettiğiniz içeriğin aynısını dağıttığınızdan emin olmak istediğinizde kullanışlıdır. Aşağıda birkaç örnek verilmiştir:

  • Bir "QA" önizleme kanalından sitenizin canlı kanalına klonlama (yayında!)

  • Sitenizin canlı kanalından "hata ayıklama" önizleme kanalına (örneğin, geri alma işleminden önce) klonlayın

  • "Hazırlık" Firebase projenizdeki bir kanaldan "prodüksiyon" 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 bir yer tutucuyu aşağıdakilerle değiştirin:

  • SOURCE_SITE_ID ve TARGET_SITE_ID: Bunlar, kanalları içeren Barındırma sitelerinin kimlikleridir.

    • Varsayılan Hosting siteniz için Firebase proje kimliğinizi kullanın.
    • Aynı Firebase projesinde bulunan, hatta farklı Firebase projelerinde yer alan Hosting sitelerini 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 değerini 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 dönmek istiyorsanız bu işlem faydalıdır. Belki de sitenizde bir tatil veya özel etkinlik için geçici içerik sunulmuştur, ancak şimdi "normal" içeriğinizi yayınlamak için bu sürüme geri dönmek istersiniz.

Önceki bir sürüme dönerek, önceki sürümle aynı içerik sürümünü sunan yeni bir sürüm oluşturmuş olursunuz. Sürüm geçmişi tablonuzda her iki sürüm de aynı sürüm tanımlayıcısını listeler.

Bu işlemi şu şekilde geri alabilirsiniz:

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

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

Sürümü manuel olarak silme

Projenizde Barındırma depolama alanında yer açmak için yayını canlı kanalınızdan manuel olarak silmeniz gerekebilir. Yalnızca önceki sürümleri silebilirsiniz, şu anda canlı sitenizde sunulmakta olan sürümü silemezsiniz.

Bir sürümü sildiğinizde, aslında içeriğini silmiş olursunuz ve bu içerik 24 saat içinde silinir. Meta verilerini (dağıtılan kim ve ne zaman dağıtıldıklarını) görmeye devam edebilmeniz için sürüm nesnesinin kendisi saklanır.

Bir sürümü şu şekilde silebilirsiniz:

  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'de, seçilen dosyaları dağıtılmış bir siteden silmenin birincil yöntemi dosyaları yerel olarak silip yeniden dağıtmaktır.

Önizleme kanalını manuel olarak silme

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

Bir önizleme kanalını sildiğinizde, kanal, yayınları 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ı sitede bir kanaldan diğerine klonladığınızda).

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

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

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

    firebase hosting:channel:delete CHANNEL_ID

Önizleme kanalları ve klonlama için CLI komutları

Önizleme kanallarıyla ilgili komutlar

Önizleme kanallarıyla ilgili tüm komutlar, birden fazla Barındırma siteniz varsa 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

Bir sitenin canlı kanalı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, kanala dağıtmadan önce default Hosting sitesinde kanalı oluşturur.

firebase hosting:channel:list Varsayılan Hosting sitesinde tüm kanalları ("canlı" kanal dahil) listeler
firebase hosting:channel:open CHANNEL_ID Tarayıcıyı belirtilen kanalın URL'sine 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" kanalda en son dağıtılan sürümü, belirtilen "hedef" kanala klonlar

Bu komut, belirtilen "hedef" kanalına da dağıtılır. "Hedef" kanalı henüz mevcut değilse bu komut, kanala dağıtım yapmadan önce "target" 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" kanalına da dağıtılır. "Hedef" kanalı henüz mevcut değilse bu komut, kanala dağıtım yapmadan önce "target" Hosting sitesinde yeni bir önizleme kanalı oluşturur.

VERSION_ID eklentisini Firebase konsolunun Barındırma kontrol panelinde bulabilirsiniz.