Hedefleri 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 kısa adlı tanımlayıcılardır.

Dağıtım hedefleri; birden fazla Hosting siteniz, birden fazla Cloud Storage paketiniz veya birden fazla Realtime Database örneğiniz olduğunda kullanışlıdır. Dağıtım hedefleri sayesinde Firebase CLI, aşağıdaki gibi belirli bir Firebase kaynağına veya projenizdeki kaynak grubuna ayarlar dağıtabilir:

  • Hosting sitelerinizin her biri için barındırma yapılandırması
  • Hosting sitelerinizin her biri için proje dizininizdeki statik öğeler
  • Birden çok Realtime Database örneği veya birden fazla 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 TARGET_NAME uygulayın.
  2. firebase.json dosyanızda, her bir kaynak veya kaynak grubunun ayarlarını yapılandırırken ilişkili TARGET_NAME kaynağına referans verin.

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

Firebase kaynaklarınız için dağıtım hedefleri belirleme

Firebase CLI'yı kullanarak, bir Firebase kaynağına veya Firebase kaynak grubuna bir TARGET_NAME (kendi tanımladığınız kısa ad) 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 yalnızca bir kez ayarlamanız gerekir.

Hosting için dağıtım hedefleri 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:

  • TYPE: İlgili Firebase kaynak türü

    • Firebase Hosting siteleri için hosting kullanın.
  • TARGET_NAME: Dağıtım yaptığınız Hosting sitesinin benzersiz adı

  • RESOURCE_IDENTIFIERFirebase projenizde listelendiği gibi 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 bir 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 Cloud Storage veya Realtime Database kaynakları grubuna TARGET_NAME 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:

  • TYPE: İlgili Firebase kaynak türü

    • Cloud Storage paketleri için storage kullanın.
    • Realtime Database örnekleri için database kullanın.
  • TARGET_NAME: Güvenlik kurallarını paylaşan kaynak veya kaynak grubunun benzersiz adı

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

Örneğin, aşağıdaki komutu çalıştırarak main/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'nin varsayılan paketin tanımlayıcısı olduğunu, myproject-eu ve myproject-ja'nin ise Firebase projesinde oluşturulan iki ek paket olduğunu unutmayın.

Dağıtım hedeflerini kullanmak için firebase.json dosyanızı yapılandırma

Firebase kaynaklarınız için dağıtım hedeflerini ayarladıktan sonra, uygulanan her TARGET_NAME öğesine firebase.json yapılandırma dosyanızda referans verin:

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

Yukarıdaki örneklerden devam edersek, Firebase projenizin (aynı güvenlik kurallarını paylaşan) iki Barındırma sitesi ve üç Cloud Storage paketi olduğu, firebase.json dosyanız aşağıdaki gibi 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 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önet

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

Komut Açıklama
firebase target Mevcut 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
Belirtilen hedeften tüm kaynakları veya Hosting sitesini kaldırır

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

Dağıtımdan önce yerel olarak test edin

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

Komut Açıklama
firebase emulators:start Proje dizininizdeki tüm yapılandırılmış kaynakları emüle eder
firebase emulators:start \
--only hosting:TARGET_NAME
Belirtilen Hosting sitesinin yalnızca Hosting içeriğini 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ı emülasyonu yapar
firebase emulators:start \
--only database:TARGET_NAME
Yalnızca belirtilen Realtime Database hedefi için kural dosyası emülasyonu yapar

Firebase Local Emulator Suite'i yapılandırma ve kullanma hakkında daha fazla bilgi edinin.

Belirli Firebase kaynaklarını dağıtma

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

Komut Açıklama
firebase deploy Proje dizininizdeki tüm dağıtılabilir kaynakların bir sürümünü oluşturur
firebase deploy \
--only hosting:TARGET_NAME
Belirtilen Hosting sitesinin yalnızca Hosting içeriğini ve yapılandırmasını site için canlı kanala dağıtır
firebase hosting:channel:deploy CHANNEL_ID \
--only TARGET_NAME
Belirtilen Hosting sitesinin yalnızca Hosting içeriğini ve yapılandırmasını site için bir ö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