Tek bir Firebase projesinde bir veya daha fazla Firebase Barındırma sitesi 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şkilendirilmiş alanı olabilir.
Aynı Firebase projesinde birden fazla Hosting sitesi oluşturduğunuzda 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 oluşturursanız bunların tümü aynı Firebase Authentication kullanıcı veritabanını paylaşırken kendilerine ait benzersiz alan adları veya içeriklere sahip olur.
1. Adım: Firebase CLI sürümünüzü güncelleyin
Firebase CLI'ı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:
Firebase konsolunun Barındırma sayfasındaki iş akışını kullanın
Firebase CLI komutunu kullanın:
firebase hosting:sites:create SITE_ID
Hosting 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 amacıyla kullanılan bir SITE_ID
belirtirsiniz:
SITE_ID.web.app
SITE_ID.firebaseapp.com
Bu URL'ler için SITE_ID
kullanıldığından, site kimliği aşağıdaki koşullara sahiptir:
- 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 genel olarak benzersiz olmalıdır
Her bir siteye, aynı içeriği ve yapılandırmayı birden fazla URL'ye sunmak için isteğe bağlı olarak özel alan adları da ekleyebilirsiniz.
İkincil bir siteyi silme
Aşağıdaki yöntemlerden birini kullanarak istenmeyen siteleri Firebase projesinden silin:
Firebase konsolunun Barındırma sayfasındaki iş akışını kullanın
Firebase CLI komutunu kullanın:
firebase hosting:sites:delete SITE_ID
Hosting REST API'yi kullanın:
projects.sites.delete
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 hedeflerini ayarlayın
Birden fazla siteniz varsa ve Firebase CLI dağıtım komutlarını çalıştırdığınızda CLI, her siteye hangi ayarların dağıtılması gerektiğini iletecek bir yönteme ihtiyaç duyar. Dağıtma hedefleri sayesinde, firebase.json
yapılandırma dosyanızda ve Firebase CLI komutlarınızda test etmek ya da sitelerinize dağıtım yapmak için belirli bir siteyi TARGET_NAME
ile benzersiz şekilde tanımlayabilirsiniz.
Dağıtım hedefi oluşturmak ve bir Hosting sitesine TARGET_NAME
uygulamak için proje dizininizin kök dizininden aşağıdaki CLI komutunu çalıştırın:
firebase target:apply hosting TARGET_NAME RESOURCE_IDENTIFIER
Parametreler burada:
TARGET_NAME: Dağıtım yaptığınız Barındırma sitesinin benzersiz adı (kendi tanımladığınız)
RESOURCE_IDENTIFIER — Firebase projenizde listelendiği şekliyle Hosting 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 hedeflerinin ayarları, proje dizininizdeki .firebaserc
dosyasında depolanır. Bu nedenle, dağıtım hedeflerini proje başına bir kez ayarlamanız yeterlidir.
4. Adım: 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 sitenin uygulanan TARGET_NAME
özelliğini kullanın.
firebase.json
dosyanız birden fazla sitenin yapılandırmasını 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 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 dizininden aşağıdaki komutları çalıştırın.
Komut | Açıklama |
---|---|
firebase emulators:start --only hosting |
Hosting içeriği ve varsayılan Hosting sitesinin yapılandırmasını yerel olarak barındırılan bir URL'de emüle eder |
firebase emulators:start --only hosting:TARGET_NAME |
Belirtilen Hosting sitesinin barındırma içeriği ve yapılandırmasını yerel olarak barındırılan bir URL'de emüle eder |
firebase hosting:channel:deploy \ |
Varsayılan Hosting sitesinin Hosting içeriğini ve yapılandırmasını bir önizleme URL'sinde dağıtır |
firebase hosting:channel:deploy \ |
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 içinde 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. Onun 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. Onun 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 |