Hedef dağıtma

Dağıtım hedefleri, benzersiz statik öğelere sahip bir Hosting sitesi veya aynı güvenlik kurallarını paylaşan bir Realtime Database örneği grubu gibi Firebase projenizdeki Firebase kaynakları için sizin tanımladığınız (kendi tanımladığınız) kısa tanımlayıcılardır.

Dağıtım hedefleri; birden fazla Barındırma siteniz, birden fazla Cloud Storage paketiniz veya birden fazla Realtime Database örneğiniz olduğunda kullanışlıdır. Firebase CLI, dağıtım hedefleriyle ayarları projenizdeki belirli bir Firebase kaynağına veya kaynak grubuna dağıtabilir. Örneğin:

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

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

  1. Hedeflenen Firebase kaynağına veya Firebase kaynakları grubuna bir TARGET_NAME uygulayın.
  2. Her bir kaynak veya kaynak grubunun ayarlarını yapılandırırken firebase.json dosyanızda ilişkili TARGET_NAME öğesine bakın.

Firebase CLI komutlarını (ör. firebase deploy) çalıştırdığınızda Firebase CLI, her bir TARGET_NAME öğesini ilişkili Firebase kaynaklarıyla eşleştirir. Daha sonra CLI, her bir kaynağın ayarlarını Firebase projenize iletir.

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

Firebase CLI'yı kullanarak bir Firebase kaynağına veya Firebase kaynakları grubuna TARGET_NAME (kendi tanımladığınız kısa ad tanımlayıcısı) uygulayın. Firebase, aşağıdakiler için dağıtım hedeflerini destekler:

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.

Hosting için dağıtım hedeflerini ayarlama

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

firebase target:apply TYPE TARGET_NAME RESOURCE_IDENTIFIER

Parametreler burada:

  • TYPE - ilgili Firebase kaynak türü

    • Firebase Barındırma siteleri için hosting değerini kullanın.
  • TARGET_NAME: Dağıtım yaptığınız Hosting sitesinin benzersiz adıdır

  • RESOURCE_IDENTIFIERFirebase projenizde listelendiği şekliyle Hosting sitesi için SITE_ID

Örneğin, Firebase projenizde iki site oluşturduysanız (myapp-blog ve myapp-app) 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

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

Dağıtım hedefi oluşturmak ve bir TARGET_NAME Cloud Storage veya Realtime Database kaynağı grubuna uygulamak için aşağıdaki CLI komutunu çalıştırın:

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

Parametreler burada:

  • TYPE - ilgili Firebase kaynak türü

    • Cloud Storage paketleri için storage politikasını kullanın.
    • Realtime Database örnekleri için database değerini kullanın.
  • TARGET_NAME: Güvenlik kurallarını paylaşan kaynak veya kaynak grubu için benzersiz bir addır

  • RESOURCE_IDENTIFIER: Hepsi aynı güvenlik kurallarını paylaşan Firebase projenizde listelendiği şekilde kaynakların (depolama paketi adları veya veritabanı örneği kimlikleri gibi) tanımlayıcılarıdır

Örneğin, aşağıdaki komutu çalıştırarak main öğesinin TARGET_NAME değerini (tümü aynı güvenlik kurallarını paylaşan) üç bölgesel Cloud Storage paketinden oluşan bir gruba uygulayabilirsiniz:

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

myproject.appspot.com değerinin varsayılan paketin tanımlayıcısı olduğunu, myproject-eu ve myproject-ja ise Firebase projesinde oluşturulan iki ek paket olduğunu unutmayın.

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, firebase.json yapılandırma dosyanıza uygulanan her bir TARGET_NAME değerine referans verin:

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

Yukarıdaki örneklerden devam edersek Firebase projenizde iki barındırma sitesi ve aynı güvenlik kurallarını paylaşan üç Cloud Storage paketi bulunur. firebase.json dosyanız şöyle 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ırmanız varsa birden fazla dağıtım hedefi oluşturabilir ve her birini firebase.json dosyasında belirtebilirsiniz. firebase deploy çalıştırdığınızda ilişkili tüm kaynaklar birlikte dağıtılır.

Dağıtım hedeflerini yönetme

Dağıtım hedeflerinin ayarları, proje dizininizdeki .firebaserc dosyasında depolanır. Proje dizininizin kök dizininden aşağıdaki komutların herhangi birini çalıştırarak projenizin dağıtım hedeflerini yönetebilirsiniz.

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
Tüm kaynakları veya Hosting sitesini belirtilen hedeften kaldırır

target:remove ve target:clear komutları, proje dizininizdeki .firebaserc dosyasında dağıtım hedefi ayarlarını otomatik olarak günceller.

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 Proje dizininizdeki yapılandırılmış tüm kaynakları emüle eder
firebase emulators:start \
--only hosting:TARGET_NAME
Yalnızca belirtilen Hosting sitesinin Hosting içeriği ve yapılandırmasını emüle eder
firebase emulators:start \
--only storage:TARGET_NAME
Yalnızca belirtilen Cloud Storage hedefi için kural dosyasını emüle eder
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'i yapılandırma ve kullanma hakkında daha fazla bilgi edinin.

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 Proje dizininizdeki tüm dağıtılabilir kaynakların sürümünü oluşturur
firebase deploy \
--only hosting:TARGET_NAME
Yalnızca belirtilen Hosting sitesinin barındırma içeriğini ve yapılandırmasını sitenin canlı kanalına dağıtır
firebase hosting:channel:deploy CHANNEL_ID \
--only TARGET_NAME
Yalnızca belirtilen Hosting sitesinin barındırma içeriğini ve yapılandırmasını sitenin önizleme kanalına dağıtır
firebase deploy \
--only storage:TARGET_NAME
Yalnızca belirtilen Cloud Storage hedefi için kural dosyasını dağıtır
firebase deploy \
--only database:TARGET_NAME
Yalnızca belirtilen Realtime Database hedefi için kural dosyasını dağıtır