Hedef dağıtma

Dağıtım hedefleri, sizin tanımladığınız) kısa ad tanımlayıcılarıdır Firebase projenizdeki Firebase kaynakları (ör. benzersiz özelliklere sahip Hosting sitesi) statik öğeler veya aynı güvenliği paylaşan Realtime Database örnek grubu kurallar.

Dağıtım hedefleri şu durumlarda yararlıdır: birden çok Hosting sitesi varsa birden fazla Cloud Storage grubu veya birden fazla Realtime Database örneği. Firebase KSA, dağıtım hedefleriyle ayarları belirli bir Projenizdeki Firebase kaynağı veya kaynak grubu. Örneğin:

  • Hosting sitelerinizin her biri için barındırma yapılandırması
  • Her bir Hosting için proje dizininizdeki statik öğeler siteler
  • Birden fazla Realtime Database örneği veya birden çok örnek tarafından paylaşılan güvenlik kuralları Cloud Storage paket

Dağıtım hedefi ayarlamak için:

  1. Hedeflenen Firebase'e bir TARGET_NAME uygulayın kaynak veya Firebase kaynağı grubu için geçerlidir.
  2. firebase.json dosyanızda, ilişkilendirilmiş TARGET_NAME öğesine referans verin inceleyebilirsiniz.

Firebase CLI komutlarını (ör. firebase deploy), Firebase CLI her bir TARGET_NAME değerini daha fazla bilgi edinin. Ardından CLI, Firebase ile proje ayarlarını yapılandırmaya çalışın.

Firebase kaynaklarınız için dağıtım hedefleri oluşturma

Firebase KSA'yı kullanarak bir TARGET_NAME ( kendinizi) bir Firebase kaynağına veya Firebase kaynağı grubuna eklemeniz gerekir. Firebase, aşağıdakiler için dağıtım hedeflerini destekler:

ziyaret edin.

Dağıtım hedeflerine ilişkin ayarlar .firebaserc dosyasında saklanır. olduğundan, dağıtım hedeflerini her bir proje için yalnızca bir kez belirler.

Hosting için dağıtım hedeflerini ayarlayın

Dağıtım hedefi oluşturmak ve bir Hosting sitesine TARGET_NAME uygulamak için şu komutu çalıştırın: şu CLI komutunu kullanın:

firebase target:apply TYPE TARGET_NAME RESOURCE_IDENTIFIER

Parametreler burada:

  • TYPE - ilgili Firebase kaynak türü

    • Firebase Hosting siteleri için hosting değerini kullanın.
  • TARGET_NAME: İlgili Hosting sitesinin benzersiz adı dağıtılıyor

  • RESOURCE_IDENTIFIERHosting sitesi için SITE_ID (örneğin, Firebase projenizde listelenen

Örneğin, iki site oluşturduysanız (myapp-blog ve myapp-app) varsa Firebase için aşağıdaki değişiklikleri yaparak her bir site için benzersiz TARGET_NAME (sırasıyla blog ve app) şu komutları kullanın:

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

Cloud Storage veya Realtime Database için dağıtım hedefleri ayarlayın

Dağıtım hedefi oluşturmak ve bir kümeye TARGET_NAME uygulamak için Cloud Storage veya Realtime Database kaynakları, aşağıdaki KSA'yı çalıştırın komut:

firebase target:apply TYPE TARGET_NAME RESOURCE-1_IDENTIFIER RESOURCE-2_IDENTIFIER ...

Parametreler burada:

  • TYPE - ilgili Firebase kaynak türü

    • Cloud Storage paket için storage değerini kullanın.
    • Realtime Database örnekleri için database kullanın.
  • TARGET_NAME: Kaynak veya kaynak grubu için benzersiz bir ad aynı güvenlik kurallarını

  • RESOURCE_IDENTIFIERkaynakların tanımlayıcıları Firebase projenizde listelenen (depolama paketi adları veya veritabanı gibi) aynı güvenlik kurallarını paylaşan

Örneğin, main öğesinin TARGET_NAME özelliğini üç kişilik bir gruba uygulayabilirsiniz bölgesel Cloud Storage paketleri (tümü aynı güvenlik kurallarını paylaşan) aşağıdaki komutu çalıştırarak erişebilirsiniz:

firebase target:apply storage main myproject.appspot.com myproject-eu myproject-ja

myproject.appspot.com öğesinin, varsayılan paketin tanımlayıcısı olduğunu unutmayın. myproject-eu ve myproject-ja ise şurada oluşturulmuş iki ek pakettir: Firebase projesiyle ilgili.

firebase.json dosyanızı dağıtım hedeflerini kullanacak şekilde yapılandırın

Firebase kaynaklarınız için dağıtım hedeflerini ayarladıktan sonra, her bir TARGET_NAME uygulandı firebase.json yapılandırma dosyası:

  1. Her Firebase kaynağı (TYPE) için bir yapılandırma nesneleri dizisi oluşturun (hosting, storage veya database).
  2. Dizilerde target öğesini (TARGET_NAME kullanarak) belirtin ve Firebase kaynağı veya kaynak grubu için ayarlarınız.

Yukarıdaki örneklerden devam ettiğimizde, Firebase projenizde iki Hosting site ve üç Cloud Storage grubu (aynı ortakyı paylaşan) güvenlik kuralları) kullanıyorsanız firebase.json dosyanız şu şekilde görünür:

{
  "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
    }
  ]
}

{
  "storage": [ {
      "target": "main",  // "main" is the applied TARGET_NAME for the group of Cloud Storage buckets
      "rules": "storage.main.rules"  // the file that contains the shared security rules
    }
  ]
}

Kaynaklarınız için birden fazla yapılandırma varsa birden fazla yapılandırma oluşturabilirsiniz. hedefleri dağıtıp her birini firebase.json dosyasında belirtin. Tümü ilişkilendirilmiş firebase deploy çalıştırdığınızda kaynaklar birlikte dağıtılacak.

Dağıtım hedeflerini yönetme

Dağıtım hedeflerine ilişkin ayarlar .firebaserc dosyasında saklanır. proje dizinini oluşturur. Projenizin dağıtım hedeflerini şuradan yönetebilirsiniz: aşağıdaki komutları proje dizininizin kök dizininden kaldırın.

Komut Açıklama
firebase target Geçerli proje dizininiz için dağıtım hedeflerini listeler
firebase target:remove \
TYPE RESOURCE_IDENTIFIER
Bir kaynağı atandığı hedeften kaldırır
firebase target:clear \
TYPE TARGET_NAME
Belirtilenden tüm kaynakları veya Hosting sitesini kaldırır hedef

target:remove ve target:clear komutları, dağıtımı otomatik olarak günceller hedef ayarları için proje dizininizdeki .firebaserc dosyasında yer alır.

Dağıtmadan önce yerel olarak test edin

Proje dizininizin kök dizininden aşağıdaki komutları çalıştırın.

Komut Açıklama
firebase emulators:start Projenizdeki yapılandırılmış tüm kaynakların emülasyonunu yapar dizin
firebase emulators:start \
--only hosting:TARGET_NAME
Yalnızca Hosting içeriği ve belirtilen Hosting site
firebase emulators:start \
--only storage:TARGET_NAME
Yalnızca belirtilen Cloud Storage için kural dosyasını emüle eder hedef
firebase emulators:start \
--only database:TARGET_NAME
Yalnızca belirtilen Realtime Database hedefi için kural dosyasını emüle eder

Firebase Local Emulator Suite.

Belirli Firebase kaynaklarını dağıtın

Proje dizininizin kök dizininden aşağıdaki komutları çalıştırın.

Komut Açıklama
firebase deploy Projenizdeki tüm dağıtılabilir kaynakların sürümünü oluşturur dizin
firebase deploy \
--only hosting:TARGET_NAME
Yalnızca Hosting içeriğini ve sitenin canlı kanalına Hosting sitesini belirtti
firebase hosting:channel:deploy CHANNEL_ID \
--only TARGET_NAME
Yalnızca Hosting içeriğini ve Hosting sitesini bir kullanıcıya belirtti şunun için kanalı önizle: site
firebase deploy \
--only storage:TARGET_NAME
Yalnızca belirtilen Cloud Storage için kural dosyasını dağıtır hedef
firebase deploy \
--only database:TARGET_NAME
Yalnızca belirtilen Realtime Database hedefi için kural dosyasını dağıtır