Tek bir Firebase projesinde bir veya daha fazla Firebase Hosting site oluşturabilirsiniz. Sitelerin tümü aynı Firebase projesinde olduğundan tüm siteler projenin diğer Firebase kaynaklarına erişebilir.
- Her sitenin kendi barındırma yapılandırması vardır.
- Her site kendi içerik koleksiyonunu barındırır.
- Her sitenin bir veya daha fazla ilişkili alan adı olabilir.
Aynı Firebase projesinde birden fazla Hosting site 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 hepsi aynı Firebase Authentication kullanıcı veritabanını paylaşabilir ve kendi benzersiz alanlarına veya içeriklerine sahip olabilir.
1. adım: Firebase KSA sürümünüzü güncelleyin
Firebase KSA'nın en yeni 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 ek siteler ekleyin:
Firebase konsolunun Hosting & Serverless > Hosting sayfasındaki iş akışını kullanın.
Firebase CLI komutunu kullanın:
firebase hosting:sites:create SITE_IDHosting REST API'yi kullanın:
projects.sites.create
Bu yöntemlerin her birinde, 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.appSITE_ID.firebaseapp.com
Bu URL'lerde SITE_ID kullanıldığından site kimliği için aşağıdaki şartlar geçerlidir:
- Geçerli bir ana makine adı etiketi olmalıdır. Bu nedenle
.,_vb. karakterler içeremez. - En fazla 30 karakter olmalıdır
- Firebase'de global olarak benzersiz olmalıdır.
Ayrıca, her siteye aynı içeriği ve yapılandırmayı birden fazla URL'de sunmak için isteğe bağlı olarak özel alanlar ekleyebilirsiniz.
İkincil alanları silme
İstenmeyen siteleri Firebase projesinden silmek için aşağıdaki yöntemlerden birini kullanın:
Firebase konsolunun Hosting & Serverless > Hosting sayfasındaki iş akışını kullanın.
Firebase CLI komutunu kullanın:
firebase hosting:sites:delete SITE_IDHosting REST API'yi kullanın:
projects.sites.delete
Firebase proje kimliğinizle aynı SITE_ID olan varsayılan siteyi silemeyeceğinizi unutmayın.
3. adım: Siteleriniz için dağıtım hedefleri ayarlayın
Birden fazla siteniz olduğunda ve Firebase CLI dağıtım komutlarını çalıştırdığınızda CLI'nın, hangi ayarların her siteye dağıtılması gerektiğini iletmesi gerekir. Dağıtım hedefleri ile belirli bir siteyi, firebase.json yapılandırma dosyanızda ve sitelerinizde test etme veya dağıtma için Firebase CLI komutlarınızda TARGET_NAME ile benzersiz şekilde tanımlayabilirsiniz.
Dağıtım hedefi oluşturmak ve TARGET_NAME sitesine 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
Parametrelerin bulunduğu yerler:
TARGET_NAME — dağıtım yaptığınız Hosting site için benzersiz bir ad (kendiniz tanımladığınız)
RESOURCE_IDENTIFIER — Hosting sitesinin
SITE_IDFirebase projenizde listelendiği gibi
Ö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 hedefleriyle ilgili ayarlar, proje dizininizdeki .firebaserc dosyasında depolanır. Bu nedenle, dağıtım hedeflerini proje başına yalnızca bir kez ayarlamanız gerekir.
4. adım: Her site için 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 uygulanan TARGET_NAME'sını kullanın.
firebase.jsondosyanız birden fazla site için yapılandırmayı tanımlıyorsa dizi biçimini 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.jsondosyanı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 Hosting içeriğini ve varsayılan Hosting sitesinin yapılandırmasını taklit eder. |
firebase emulators:start --only hosting:TARGET_NAME |
Yerel olarak barındırılan bir URL'de belirtilen Hosting sitenin Hosting içeriğini ve yapılandırmasını taklit eder. |
firebase hosting:channel:deploy \ |
Hosting içeriğini ve yapılandırmasını bir önizleme URL'sinde varsayılan Hosting sitesine dağıtır. |
firebase hosting:channel:deploy \ |
Belirtilen Hosting sitesinin içeriğini ve yapılandırmasını bir önizleme URL'sine Hosting dağıtır. |
firebase deploy --only hosting |
Hosting içeriğini ve yapılandırmasını, firebase.json içinde yapılandırılan tüm Hosting sitelerinin canlı kanalına dağıtır.
|
firebase deploy --only hosting:TARGET_NAME |
Belirtilen Hosting sitesinin canlı kanalına Hosting içerik ve yapılandırmayı dağıtır. |
| Komut | Açıklama |
|---|---|
(önerilmez; bunun yerine emulators:start kullanın)firebase serve --only hosting
|
Hosting içeriğini ve varsayılan Hosting sitesinin 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. |