Proje kaynaklarını birden fazla sitede paylaşın

Tek bir Firebase projesinde bir veya daha fazla Firebase Hosting sitesi oluşturabilirsiniz. Sitelerin tümü aynı Firebase projesinde olduğundan tüm siteler projenin diğer Firebase kaynaklarına erişebilir.

Aynı Firebase projesinde birden fazla Hosting sitesi oluşturarak Firebase kaynaklarını ilgili siteler ve uygulamalar arasında daha kolay paylaşabilirsiniz. Örneğin, blogunuzu, yönetici panelinizi ve herkese açık uygulamanızı aynı Firebase projesinde ayrı siteler olarak ayarlarsanız bunların tümü aynı Firebase Authenticationkullanıcı veritabanını paylaşabilir ve kendi benzersiz alan adlarına veya içeriklerine sahip olabilir.

1. adım: Firebase KSA sürümünüzü güncelleyin

Firebase KSA'nın en son sürümüne güncelleyerek en güncel Firebase Hosting özelliklerine erişin.

2. adım: Başka siteler ekleyin

Aşağıdaki yöntemlerden birini kullanarak Firebase projesine başka siteler ekleyin:

Bu yöntemlerin her biri için, site için Firebase tarafından sağlanan varsayılan alt alan adlarını oluşturmak üzere kullanılan bir SITE_ID belirtirsiniz:

  • SITE_ID.web.app
  • SITE_ID.firebaseapp.com

Bu URL'ler için SITE_ID kullanıldığı için site kimliği aşağıdaki koşulları karşılamalıdır:

  • Geçerli bir ana makine adı etiketi olmalıdır. Yani ., _ vb. içeremez.
  • En fazla 30 karakter uzunluğunda olmalıdır
  • Firebase'de global olarak benzersiz olmalıdır.

Aynı içeriği ve yapılandırmayı birden fazla URL'de sunmak için her siteye isteğe bağlı olarak özel alanlar da ekleyebilirsiniz.

İkincil siteleri silme

Aşağıdaki yöntemlerden birini kullanarak Firebase projesindeki istenmeyen siteleri silin:

Firebase proje kimliğinizle aynı SITE_ID değerine sahip varsayılan siteyi silemeyeceğinizi unutmayın.

3. adım: Siteleriniz için dağıtım hedefleri oluşturun

Birden fazla siteniz varsa ve Firebase CLI dağıtım komutlarını çalıştırırsanız CLI'nin her siteye hangi ayarların dağıtılması gerektiğini bildirmesi gerekir. Yayınlama hedefleri sayesinde, belirli bir siteyi firebase.json yapılandırma dosyanızda ve Firebase CLI komutlarınızda TARGET_NAME ile benzersiz şekilde tanımlayabilir, böylece sitelerinizi test edebilir veya sitelerinize dağıtabilirsiniz.

Dağıtım hedefi oluşturmak ve TARGET_NAME sitelerine Hosting uygulamak için proje dizininizin kökünden aşağıdaki CLI komutunu çalıştırın:

firebase target:apply hosting TARGET_NAME RESOURCE_IDENTIFIER

Parametreler şu şekildedir:

  • TARGET_NAME: Dağıttığınız Hosting site için benzersiz bir ad (kendinizin tanımladığı)

  • RESOURCE_IDENTIFIER: Hosting sitesi için SITE_ID (Firebase projenizde listelendiği şekilde)

Örneğin, Firebase projenizde iki site (myapp-blog ve myapp-app) oluşturduysanız aşağıdaki komutları çalıştırarak her siteye benzersiz bir TARGET_NAME (sırasıyla blog ve app) uygulayabilirsiniz:

firebase target:apply hosting blog myapp-blog
firebase target:apply hosting app myapp-app

Yayınlama hedefleriyle ilgili ayarlar, proje dizininizdeki .firebaserc dosyasında depolanır. Bu nedenle, proje başına yalnızca bir kez yayınlama hedefleri oluşturmanız gerekir.

4. adım: Her sitenin barındırma yapılandırmasını tanımlayın

firebase.json dosyanızda bir sitenin barındırma yapılandırmasını tanımlarken sitenin uygulanmış TARGET_NAME değerini kullanın.

  • firebase.json dosyanız birden fazla sitenin yapılandırmasını tanıyorsa dizi biçimi kullanın:

    {
      "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 dosyanız yalnızca bir sitenin yapılandırmasını tanımlıyorsa dizi biçimi kullanmanız gerekmez:

    {
      "hosting": {
          "target": "blog",
          "public": "dist",
    
          // ...
    
          "rewrites": [...]
      }
    }
    

5. adım: Yerel olarak test edin, değişiklikleri önizleyin ve sitelerinize dağıtın

Yerel proje dizininizin kökünden aşağıdaki komutlardan herhangi birini çalıştırın.

Komut Açıklama
firebase emulators:start --only hosting Yerel olarak barındırılan bir URL'de varsayılan Hosting sitesinin Hosting içeriğini ve yapılandırmasını taklit eder
firebase emulators:start --only hosting:TARGET_NAME Belirtilen Hosting sitesinin Hosting içeriğini ve yapılandırmasını yerel olarak barındırılan bir URL'de taklit eder
firebase hosting:channel:deploy \
CHANNEL_ID
Varsayılan Hosting sitesinin Hosting içeriğini ve yapılandırmasını bir önizleme URL'sinde dağıtır
firebase hosting:channel:deploy \
CHANNEL_ID --only TARGET_NAME
Belirtilen Hosting sitesinin Hosting içeriğini ve yapılandırmasını bir önizleme URL'sinde dağıtır
firebase deploy --only hosting Hosting içeriğini ve yapılandırmasını, firebase.json'te yapılandırılmış tüm Hosting sitelerinin canlı kanalına dağıtır
firebase deploy --only hosting:TARGET_NAME Hosting içeriğini ve yapılandırmasını, belirtilen Hosting sitesinin canlı kanalına dağıtır
Komut Açıklama
(önerilmez; bunun yerine emulators:start kullanın)
firebase serve --only hosting
Varsayılan Hosting sitesinin Hosting içeriğini ve yapılandırmasını yerel olarak barındırılan bir URL'de sunar
(önerilmez; bunun yerine emulators:start kullanın)
firebase serve --only hosting:TARGET_NAME
Belirtilen Hosting sitesinin Hosting içeriğini ve yapılandırmasını yerel olarak barındırılan bir URL'de sunar