Check out what’s new from Firebase@ Google I/O 2021, and join our alpha program for early access to the new Remote Config personalization feature. Learn more

Proje kaynaklarını birden çok sitede paylaşın

Tek bir Firebase projesinde bir veya daha fazla Firebase Barındırma sitesi kurabilirsiniz. Sitelerin tümü aynı Firebase projesinde olduğundan, tüm siteler projenin diğer Firebase kaynaklarına erişebilir.

Aynı Firebase projesi içinde birden fazla Barındırma sitesi kurarak, Firebase kaynaklarını ilgili siteler ve uygulamalar arasında daha kolay paylaşabilirsiniz. Örneğin, blogunuzu, yönetici panelinizi ve genel uygulamanızı aynı Firebase projesinde ayrı siteler olarak ayarlarsanız, hepsi aynı Firebase Kimlik Doğrulaması kullanıcı veritabanını paylaşabilir ve aynı zamanda kendi benzersiz etki alanlarına veya içeriğe sahip olabilir.

1. Adım : Firebase CLI sürümünüzü güncelleyin

Firebase CLI'nin en son sürümüne güncelleyerek en güncel Firebase Barındırma özelliklerine erişin.

2. Adım : Ek siteler ekleyin

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

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

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

Bu URL'ler için SITE_ID kullanıldığından, site kimliğinin aşağıdaki gereksinimleri vardır:

  • Geçerli bir ana bilgisayar adı etiketi olmalıdır, yani içeremez . , _ , vb.
  • 30 karakter veya daha az olmalıdır
  • Firebase içinde küresel olarak benzersiz olmalıdır

Her siteye, aynı içeriği ve yapılandırmayı birden çok URL'ye sunmak için isteğe bağlı olarak özel etki alanları da ekleyebilirsiniz .

İkincil bir siteyi silin

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

SITE_ID proje kimliğiniz ile aynı SITE_ID sahip olan varsayılan siteyi SITE_ID unutmayın.

3. Adım : Siteleriniz için dağıtım hedefleri ayarlayın

Birden çok siteniz olduğunda ve Firebase CLI dağıtım komutlarını çalıştırdığınızda, CLI'nin her siteye hangi ayarların dağıtılması gerektiğini iletmek için bir yola ihtiyacı vardır. Dağıtım hedefleriyle , sitelerinize test etmek veya dağıtmak için firebase.json yapılandırma dosyanızda ve firebase.json CLI komutlarınızda bir TARGET_NAME ile belirli bir siteyi benzersiz bir şekilde tanımlayabilirsiniz.

Bir dağıtım hedefi oluşturmak ve bir Barındırma sitesine bir TARGET_NAME 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 nerede:

  • TARGET_NAME — dağıtımını yaptığınız Barındırma sitesi için (kendi tanımladığınız) benzersiz bir ad

  • RESOURCE_IDENTIFIERSITE_ID projenizde listelendiği SITE_ID Barındırma sitesi için SITE_ID

Ö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

Dağıtım hedeflerine ilişkin ayarlar proje dizininizdeki .firebaserc dosyasında depolanır, bu nedenle proje başına yalnızca bir kez konuşlandırma hedefleri ayarlamanız gerekir.

Adım 4 : Her site için barındırma yapılandırmasını tanımlayın

firebase.json dosyanızda barındırma yapılandırmasını tanımlarken bir sitenin uygulanan TARGET_NAME firebase.json .

  • firebase.json dosyanız birden çok site için yapılandırmayı tanımlıyorsa, bir 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 site için yapılandırmayı tanımlıyorsa, dizi biçimi kullanmak gerekli değildir:

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

Adım 5 : 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 Barındırma sitesinin Barındırma içeriğine ve yapılandırmasına öykünür
firebase emulators:start --only hosting: TARGET_NAME Yerel olarak barındırılan bir URL'de belirtilen Barındırma sitesinin Barındırma içeriğine ve yapılandırmasına öykünür
firebase hosting:channel:deploy \
CHANNEL_ID
Varsayılan Barındırma sitesinin Barındırma 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 Barındırma sitesinin Barındırma içeriğini ve yapılandırmasını bir önizleme URL'sinde dağıtır
firebase deploy --only hosting firebase.json yapılandırılmış tüm Barındırma sitelerinin canlı kanalına Barındırma içeriğini ve yapılandırmasını dağıtır
firebase deploy --only hosting: TARGET_NAME Barındırma içeriğini ve yapılandırmasını belirtilen Barındırma sitesinin canlı kanalına dağıtır
Komut Açıklama
(önerilmez; emulators:start kullanın emulators:start bunun yerine emulators:start )
firebase serve --only hosting
Yerel olarak barındırılan bir URL'de varsayılan Barındırma sitesinin Barındırma içeriğini ve yapılandırmasını sunar
(önerilmez; emulators:start kullanın emulators:start bunun yerine emulators:start )
firebase serve --only hosting: TARGET_NAME
Yerel olarak barındırılan bir URL'de belirtilen Barındırma sitesinin Barındırma içeriğini ve yapılandırmasını sunar