Firebase CLI referansı

Firebase CLI (GitHub), Firebase projelerini yönetmek, görüntülemek ve projelere dağıtmak için çeşitli araçlar sağlar.

Firebase CLI'yi kullanmadan önce bir Firebase projesi oluşturun.

KSA'yı ayarlama veya güncelleme

Firebase CLI'yi yükleme

Firebase CLI'yi işletim sisteminizle, deneyim seviyenizle ve/veya kullanım alanınızla eşleşen bir yöntem kullanarak yükleyebilirsiniz. CLI'yi nasıl yüklediğinizden bağımsız olarak aynı işlevlere ve firebase komutuna erişebilirsiniz.

Windows macOS Linux

Windows

Windows için Firebase CLI'yi aşağıdaki seçeneklerden birini kullanarak yükleyebilirsiniz:

Seçenek Açıklama Şunlar için önerilir:
bağımsız ikili CLI için bağımsız ikili dosyayı indirin. Ardından, yürütülebilir dosyaya erişerek firebase komutunu çalıştırabileceğiniz bir kabuk açabilirsiniz. Yeni geliştiriciler

Node.js kullanmayan veya bu platformu bilmeyen geliştiriciler
npm KSA'yı yüklemek ve dünya genelinde kullanılabilen firebase komutunu etkinleştirmek için npm'yi (Node Paket Yöneticisi) kullanın. Node.js kullanan geliştiriciler

bağımsız ikili program

Firebase CLI için ikili dosyayı indirip çalıştırmak üzere aşağıdaki adımları uygulayın:

  1. Windows için Firebase CLI ikilisini indirin.

  2. firebase komutunu çalıştırabileceğiniz bir kabuk açmak için ikili dosyaya erişin.

  3. Giriş yapıp KSA'yı test etmeye devam edin.

npm

Firebase CLI'yi yüklemek için npm (Node Package Manager) kullanmak istiyorsanız aşağıdaki adımları uygulayın:

  1. nvm-windows (Node Sürüm Yöneticisi) kullanarak Node.js'yi yükleyin. Node.js yüklendiğinde npm komut araçları otomatik olarak yüklenir.

  2. Aşağıdaki komutu çalıştırarak Firebase KSA'yı npm üzerinden yükleyin:

    npm install -g firebase-tools

    Bu komut, dünya genelinde kullanılabilen firebase komutunu etkinleştirir.

  3. Giriş yapıp KSA'yı test etmeye devam edin.

macOS veya Linux

macOS veya Linux için Firebase CLI'yi aşağıdaki seçeneklerden birini kullanarak yükleyebilirsiniz:

Seçenek Açıklama Şunlar için önerilir:
otomatik yükleme komut dosyası İşletim sisteminizi otomatik olarak algılayan, en son KSA sürümünü indiren ve ardından dünya genelinde kullanılabilen firebase komutunu etkinleştiren tek bir komut çalıştırın. Yeni geliştiriciler

Node.js kullanan veya bu platformu bilmeyen geliştiriciler

CI/CD ortamında otomatik dağıtımlar
bağımsız ikili CLI için bağımsız ikili dosyayı indirin. Ardından, ikili dosyayı iş akışınıza uygun şekilde yapılandırıp çalıştırabilirsiniz. KSA'yı kullanarak tamamen özelleştirilebilir iş akışları
npm KSA'yı yüklemek ve dünya genelinde kullanılabilen firebase komutunu etkinleştirmek için npm'yi (Node Paket Yöneticisi) kullanın. Node.js kullanan geliştiriciler

otomatik yükleme komut dosyası

Otomatik yükleme komut dosyasını kullanarak Firebase CLI'yi yüklemek için aşağıdaki adımları uygulayın:

  1. Aşağıdaki cURL komutunu çalıştırın:

    curl -sL https://firebase.tools | bash

    Bu komut dosyası, işletim sisteminizi otomatik olarak algılar, en son Firebase KSA sürümünü indirir ve ardından dünya genelinde kullanılabilen firebase komutunu etkinleştirir.

  2. Giriş yapıp KSA'yı test etmeye devam edin.

Otomatik yükleme komut dosyası hakkında daha fazla örnek ve ayrıntı için firebase.tools adresindeki komut dosyasının kaynak koduna bakın.

bağımsız ikili program

İşletim sisteminize özel Firebase CLI ikilisini indirip çalıştırmak için aşağıdaki adımları uygulayın:

  1. İşletim sisteminiz için Firebase CLI ikilisini indirin: macOS | Linux

  2. (İsteğe bağlı) Dünya genelinde kullanılabilen firebase komutunu ayarlayın.

    1. chmod +x ./firebase_tools dosyasını çalıştırarak ikili dosyayı yürütülebilir hale getirin.
    2. İkili dosyanın yolunu PATH değişkeninize ekleyin.
  3. Giriş yapıp KSA'yı test etmeye devam edin.

npm

Firebase CLI'yi yüklemek için npm'ü (Node Package Manager) kullanmak istiyorsanız aşağıdaki adımları uygulayın:

  1. Node.js'yi nvm (Node Sürüm Yöneticisi) kullanarak yükleyin.
    Node.js yüklendiğinde npm komut araçları otomatik olarak yüklenir.

  2. Aşağıdaki komutu çalıştırarak Firebase KSA'yı npm üzerinden yükleyin:

    npm install -g firebase-tools

    Bu komut, dünya genelinde kullanılabilen firebase komutunu etkinleştirir.

  3. Giriş yapıp KSA'yı test etmeye devam edin.

Giriş yapıp Firebase CLI'yi test etme

CLI'yi yükledikten sonra kimlik doğrulamanız gerekir. Ardından, Firebase projelerinizi listeleyerek kimlik doğrulamayı onaylayabilirsiniz.

  1. Aşağıdaki komutu çalıştırarak Google Hesabınızı kullanarak Firebase'e giriş yapın:

    firebase login

    Bu komut, yerel makinenizi Firebase'e bağlar ve Firebase projelerinize erişim izni verir.

  2. Firebase projelerinizi listeleyerek CLI'nin düzgün şekilde yüklenip yüklenmediğini ve hesabınıza erişip erişmediğini test edin. Aşağıdaki komutu çalıştırın:

    firebase projects:list

    Gösterilen liste, Firebase konsolunda listelenen Firebase projeleriyle aynı olmalıdır.

KSA'yı en son sürüme güncelleyin

Genellikle en güncel Firebase CLI sürümünü kullanmak istersiniz.

CLI sürümünü nasıl güncelleyeceğiniz, işletim sisteminize ve CLI'yi nasıl yüklediğinize bağlıdır.

Windows

  • Bağımsız ikili: Yeni sürümü indirin, ardından sisteminizdeki sürümü değiştirin
  • npm: npm install -g firebase-tools dosyasını çalıştırın

macOS

  • otomatik yükleme komut dosyası: curl -sL https://firebase.tools | upgrade=true bash dosyasını çalıştırın.
  • Bağımsız ikili: Yeni sürümü indirin, ardından sisteminizdeki sürümü değiştirin
  • npm: npm install -g firebase-tools dosyasını çalıştırın

Linux

  • otomatik yükleme komut dosyası: curl -sL https://firebase.tools | upgrade=true bash dosyasını çalıştırın.
  • Bağımsız ikili: Yeni sürümü indirin, ardından sisteminizdeki sürümü değiştirin
  • npm: npm install -g firebase-tools dosyasını çalıştırın

KSA'yı CI sistemleriyle kullanma

Firebase CLI'nin kimlik doğrulamayı tamamlaması için bir tarayıcı gerekir ancak CLI, CI ve diğer headless ortamlarla tam uyumludur.

  1. Tarayıcı bulunan bir makineye Firebase CLI'yi yükleyin.

  2. Aşağıdaki komutu çalıştırarak oturum açma işlemini başlatın:

    firebase login:ci
  3. Sağlanan URL'yi ziyaret edin ve ardından bir Google Hesabı kullanarak giriş yapın.

  4. Yeni bir yenileme jetonu yazdırın. Mevcut CLI oturumu etkilenmez.

  5. Çıkış jetonunu CI sisteminizde güvenli ancak erişilebilir bir şekilde saklayın.

  6. firebase komutlarını çalıştırırken bu jetonu kullanın. Aşağıdaki iki seçenekten birini kullanabilirsiniz:

    • 1. Seçenek: Jetonu FIREBASE_TOKEN ortam değişkeni olarak depolayın. Sisteminiz jetonu otomatik olarak kullanır.

    • 2. Seçenek: Tüm firebase komutlarını CI sisteminizde --token TOKEN işaretiyle çalıştırın.
      Jeton yükleme için öncelik sırası şu şekildedir: işaret, ortam değişkeni, istenen Firebase projesi.

Firebase projesini ilk kullanıma hazırlama

CLI kullanılarak gerçekleştirilen birçok yaygın görev (ör. Firebase projesine dağıtma) için proje dizini gerekir. firebase init komutunu kullanarak bir proje dizini oluşturursunuz. Proje dizini genellikle kaynak denetimi kök dizininizle aynı dizindir ve firebase init çalıştırıldıktan sonra dizinde bir firebase.json yapılandırma dosyası bulunur.

Yeni bir Firebase projesini başlatmak için uygulamanızın dizininden aşağıdaki komutu çalıştırın:

firebase init

firebase init komutu, proje dizininizi ve bazı Firebase ürünlerini ayarlama sürecinde size yol gösterir. Projenin başlatılması sırasında Firebase CLI sizden aşağıdaki görevleri tamamlamanızı ister:

  • Firebase projenizde ayarlamak istediğiniz Firebase ürünlerini seçin.

    Bu adımda, seçili ürünler için belirli dosyalar için yapılandırmalar belirlemeniz istenir. Bu yapılandırmalar hakkında daha fazla bilgi için ilgili ürünün dokümanlarına (ör. Hosting) bakın. Daha fazla Firebase ürünü ayarlamak için dilediğiniz zaman firebase init'ı çalıştırabileceğinizi unutmayın.

  • Varsayılan bir Firebase projesi seçin.

    Bu adımda, projeye özgü komutların (firebase deploy gibi) uygun Firebase projesinde çalıştırılması için geçerli proje dizini bir Firebase projesiyle ilişkilendirilir.

    Aynı proje diziniyle birden fazla Firebase projesini (ör. hazırlık projesi ve üretim projesi) ilişkilendirmek de mümkündür.

İlklendirmenin sonunda Firebase, yerel uygulama dizininizin kökünde aşağıdaki iki dosyayı otomatik olarak oluşturur:

  • Proje yapılandırmanızı listeleyen bir firebase.json yapılandırma dosyası.

  • Projenizin takma adlarını depolayan bir .firebaserc dosyası.

firebase.json dosyası

firebase init komutu, proje dizinizin kökünde bir firebase.json yapılandırma dosyası oluşturur.

firebase.json dosyası, proje dizininizdeki hangi dosya ve ayarların Firebase projenize dağıtılacağını belirttiği için öğeleri Firebase CLI ile dağıtmak için gereklidir. Bazı ayarlar proje dizininizde veya Firebase konsolunda tanımlanabileceğinden, olası yayınlama çakışmalarını çözdüğünüzden emin olun.

Çoğu Firebase Hosting seçeneğini doğrudan firebase.json dosyasında yapılandırabilirsiniz. Ancak firebase init komutu, Firebase CLI ile dağıtılabilen diğer Firebase hizmetleri için bu hizmetlerle ilgili ayarları tanımlayabileceğiniz belirli dosyalar oluşturur (ör. Cloud Functions için bir index.js dosyası). firebase.json dosyasında yayından önce veya yayından sonra kancaları da ayarlayabilirsiniz.

Aşağıda, başlatma sırasında Firebase Hosting, Cloud Firestore ve Cloud Functions for Firebase'ı (TypeScript kaynağı ve lint seçenekleri seçili olarak) seçerseniz varsayılan ayarlara sahip örnek bir firebase.json dosyası verilmiştir.

{
  "hosting": {
    "public": "public",
    "ignore": [
      "firebase.json",
      "**/.*",
      "**/node_modules/**"
    ]
  },
  "firestore": {
      "rules": "firestore.rules",
      "indexes": "firestore.indexes.json"
  },
  "functions": {
    "predeploy": [
      "npm --prefix \"$RESOURCE_DIR\" run lint",
      "npm --prefix \"$RESOURCE_DIR\" run build"
    ]
  }
}

Varsayılan olarak firebase.json kullanılır ancak alternatif bir yapılandırma dosyası belirtmek için --config PATH işaretini iletebilirsiniz.

Birden fazla Cloud Firestore veritabanı için yapılandırma

firebase init dosyasını çalıştırdığınızda, firebase.json dosyanız yukarıda gösterildiği gibi projenizin varsayılan veritabanına karşılık gelen tek bir firestore anahtarı içerir.

Projenizde birden fazla Cloud Firestore veritabanı varsa her veritabanı ile farklı Cloud Firestore Security Rules ve veritabanı dizini kaynak dosyalarını ilişkilendirmek için firebase.json dosyanızı düzenleyin. Dosyayı, her veritabanı için bir giriş içeren bir JSON dizisiyle değiştirin.

      "firestore": [
        {
          "database": "(default)",
          "rules": "firestore.default.rules",
          "indexes": "firestore.default.indexes.json"
        },
        {
          "database": "ecommerce",
          "rules": "firestore.ecommerce.rules",
          "indexes": "firestore.ecommerce.indexes.json"
        }
      ],

Dağıtımda yoksayılacak Cloud Functions dosyası

KSA, işlev dağıtımı sırasında functions dizininde yoksayılacak dosyaların listesini otomatik olarak belirtir. Bu, arka uçta dağıtımınızın veri boyutunu artırabilecek ek dosyaların dağıtılmasını önler.

Varsayılan olarak yoksayılan dosyaların JSON biçiminde gösterilen listesi şunlardır:

"ignore": [
  ".git",
  ".runtimeconfig.json",
  "firebase-debug.log",
  "firebase-debug.*.log",
  "node_modules"
]

firebase.json içinde ignore için kendi özel değerlerinizi eklerseniz yukarıda gösterilen dosya listesini koruduğunuzdan (veya eksikse eklediğinizden) emin olun.

Proje takma adlarını yönetme

Aynı proje diziniyle birden fazla Firebase projesini ilişkilendirebilirsiniz. Örneğin, hazırlık için bir Firebase projesi, üretim için başka bir Firebase projesi kullanmak isteyebilirsiniz. Farklı proje ortamları kullanarak değişiklikleri üretime dağıtmadan önce doğrulayabilirsiniz. firebase use komutu, takma adlar arasında geçiş yapmanıza ve yeni takma adlar oluşturmanıza olanak tanır.

Proje takma adı ekleme

Proje başlatma sırasında bir Firebase projesi seçtiğinizde projeye otomatik olarak default takma adı atanır. Ancak projeye özgü komutların farklı bir Firebase projesinde çalıştırılmasına izin vermek ancak yine de aynı proje dizinini kullanmak için proje dizininizden aşağıdaki komutu çalıştırın:

firebase use --add

Bu komut, başka bir Firebase projesi seçmenizi ve projeyi takma ad olarak atamanız ister. Takma ad atamaları, proje dizininizdeki bir .firebaserc dosyasına yazılır.

Proje takma adlarını kullanma

Atanmış Firebase proje takma adlarını kullanmak için proje dizininizden aşağıdaki komutlardan birini çalıştırın.

Komut Açıklama
firebase use Proje dizininiz için şu anda tanımlanmış takma adların listesini görüntüleme
firebase use \
PROJECT_ID|ALIAS
Tüm komutların belirtilen Firebase projesinde çalıştırılmasını sağlar.
CLI, bu projeyi şu anda "etkin proje" olarak kullanır.
firebase use --clear Etkin projeyi temizler.

Diğer KSA komutlarını çalıştırmadan önce yeni bir etkin proje ayarlamak için firebase use PROJECT_ID|ALIAS komutunu çalıştırın.

firebase use \
--unalias PROJECT_ALIAS
Proje dizininizdeki bir takma adı kaldırır.

Herhangi bir CLI komutuyla --project işaretini ileterek şu anda etkin proje olarak kullanılan projeyi geçersiz kılabilirsiniz. Örneğin: CLI'nizi, staging takma adını atadığınız bir Firebase projesinde çalıştıracak şekilde ayarlayabilirsiniz. prod takma adını atadığınız Firebase projesine karşı tek bir komut çalıştırmak istiyorsanız örneğin firebase deploy --project=prod komutunu çalıştırabilirsiniz.

Kaynak denetimi ve proje takma adları

Genel olarak, ekibinizin proje takma adlarını paylaşmasına izin vermek için .firebaserc dosyanızı kaynak denetimine eklemeniz gerekir. Ancak açık kaynak projeler veya başlangıç şablonları için genellikle .firebaserc dosyanızı kontrol etmemeniz gerekir.

Yalnızca sizin kullanabileceğiniz bir geliştirme projeniz varsa her komutla birlikte --project işaretini iletebilir veya Firebase projesine bir takma ad atamadan firebase use PROJECT_ID'i çalıştırabilirsiniz.

Firebase projenizi yerel olarak yayınlama ve test etme

Firebase projenizi üretime dağıtmadan önce yerel olarak barındırılan URL'lerde görüntüleyebilir ve test edebilirsiniz. Yalnızca belirli özellikleri test etmek istiyorsanız firebase serve komutunda virgülle ayrılmış bir liste kullanabilirsiniz.

Aşağıdaki görevlerden birini yapmak istiyorsanız yerel proje dizininizin kökünden aşağıdaki komutu çalıştırın:

  • Firebase'da barındırılan uygulamanızın statik içeriğini görüntüleyin.
  • Firebase Hosting için dinamik içerik oluşturmak amacıyla Cloud Functions'ü kullanıyorsanız ve yerel bir URL'de Hosting'i taklit etmek için üretim (dağıtılmış) HTTP işlevlerinizi kullanmak istiyorsanız.
firebase serve --only hosting

Yerel HTTP işlevlerini kullanarak projenizi taklit etme

Projenizi yerel HTTP işlevlerini kullanarak taklit etmek için proje dizininizden aşağıdaki komutlardan birini çalıştırın.

  • HTTP işlevlerini ve barındırmayı yerel URL'lerde test etmek için aşağıdaki komutlardan birini kullanın:

    firebase serve
    firebase serve --only functions,hosting // uses a flag
  • Yalnızca HTTP işlevlerini taklit etmek için aşağıdaki komutu kullanın:

    firebase serve --only functions

Diğer yerel cihazlardan test etme

Varsayılan olarak firebase serve yalnızca localhost'ten gelen isteklere yanıt verir. Bu, barındırılan içeriğinize bilgisayarınızın web tarayıcısından erişebileceğiniz ancak ağınızdaki diğer cihazlardan erişemeyeceğiniz anlamına gelir. Diğer yerel cihazlardan test etmek istiyorsanız --host işaretini kullanın. Örneğin:

firebase serve --host 0.0.0.0  // accepts requests to any host

Firebase projesine dağıtma

Firebase CLI, aşağıdakiler dahil olmak üzere Firebase projenize kod ve öğe dağıtımını yönetir:

  • Firebase Hosting sitelerinizdeki yeni yayınlar
  • Yeni, güncellenmiş veya mevcut Cloud Functions for Firebase
  • Firebase Data Connect için yeni veya güncellenmiş şemalar ve bağlayıcılar
  • Firebase Realtime Database için kurallar
  • Cloud Storage for Firebase için kurallar
  • Cloud Firestore için kurallar
  • Cloud Firestore için dizinler

Bir Firebase projesine dağıtmak için proje dizininizden aşağıdaki komutu çalıştırın:

firebase deploy

İsterseniz dağıtımlarınızın her birine yorum ekleyebilirsiniz. Bu yorum, projenizin Firebase Hostingsayfasındaki diğer dağıtım bilgileriyle birlikte gösterilir. Örneğin:

firebase deploy -m "Deploying the best new feature ever."

firebase deploy komutunu kullanırken aşağıdakilere dikkat edin:

  • Bir proje dizininden kaynak dağıtmak için proje dizininde firebase.json dosyası bulunmalıdır. Bu dosya, firebase init komutu tarafından sizin için otomatik olarak oluşturulur.

  • Varsayılan olarak firebase deploy, proje dizininizdeki tüm dağıtılabilir kaynaklar için bir sürüm oluşturur. Belirli Firebase hizmetlerini veya özelliklerini dağıtmak için kısmi dağıtımı kullanın.

Güvenlik kurallarıyla ilgili dağıtım anlaşmazlıkları

Firebase Realtime Database, Cloud Storage for Firebase ve Cloud Firestore için güvenlik kurallarını yerel proje dizininizde veya Firebase konsolunda tanımlayabilirsiniz.

Dağıtım çakışmalarını önlemek için kısmi dağıtımı kullanmak ve yalnızca Firebase konsolunda kural tanımlamak da bir seçenektir.

Dağıtım kotaları

Firebase dağıtım işlemlerinizin hızını veya hacmini sınırlayan bir kotayı aşmanız mümkündür (ancak bu olasılık düşüktür). Örneğin, çok sayıda işlev dağıtırken HTTP 429 Quotahata mesajı alabilirsiniz. Bu tür sorunları çözmek için kısmi dağıtımı kullanmayı deneyin.

Dağıtımı geri alma

İstediğiniz sürüm için Geri alma işlemini seçerek projenizin Firebase Hosting sayfasından Firebase Hosting dağıtımını geri alabilirsiniz.

Şu anda Firebase Realtime Database, Cloud Storage for Firebase veya Cloud Firestore için güvenlik kurallarının sürümlerini geri almak mümkün değildir.

Belirli Firebase hizmetlerini dağıtma

Yalnızca belirli Firebase hizmetlerini veya özelliklerini dağıtmak istiyorsanız firebase deploy komutundaki bir işarette virgül ile ayrılmış bir liste kullanabilirsiniz. Örneğin, aşağıdaki komut Firebase Hosting içerik ve Cloud Storage güvenlik kurallarını dağıtır.

firebase deploy --only hosting,storage

Aşağıdaki tabloda, kısmi dağıtım için kullanılabilen hizmetler ve özellikler listelenmiştir. İşaretçilerdeki adlar, firebase.json yapılandırma dosyanızdaki anahtarlara karşılık gelir.

İşaret söz dizimi Hizmet veya özellik dağıtıldı
--only hosting Firebase Hosting içerik
--only database Firebase Realtime Database kural
--only dataconnect Firebase Data Connect şemaları ve bağlayıcıları
--only storage Cloud Storage for Firebase kural
--only firestore Yapılandırılmış tüm veritabanları için Cloud Firestore kuralları ve dizinleri
--only functions Cloud Functions for Firebase (Bu işaretin daha spesifik sürümleri olabilir)

Belirli işlevleri dağıtma

İşlev dağıtırken belirli işlevleri hedefleyebilirsiniz. Örneğin:

firebase deploy --only functions:function1
firebase deploy --only functions:function1,functions:function2

Diğer bir seçenek de /functions/index.js dosyanızda işlevleri dışa aktarma grupları halinde gruplandırmaktır. Gruplandırma işlevleri, tek bir komut kullanarak birden fazla işlev dağıtmanıza olanak tanır.

Örneğin, bir groupA ve groupB tanımlamak için aşağıdaki işlevleri yazabilirsiniz:

var functions = require('firebase-functions/v1');

exports.groupA = {
  function1: functions.https.onRequest(...),
  function2: functions.database.ref('\path').onWrite(...)
}
exports.groupB = require('./groupB');

Bu örnekte, groupB'daki işlevleri özel olarak tanımlayan ek işlevler ayrı bir functions/groupB.js dosyasında yer almaktadır. Örneğin:

var functions = require('firebase-functions/v1');

exports.function3 = functions.storage.object().onChange(...);
exports.function4 = functions.analytics.event('in_app_purchase').onLog(...);

Bu örnekte, proje dizininizden aşağıdaki komutu çalıştırarak tüm groupA işlevlerini dağıtabilirsiniz:

firebase deploy --only functions:groupA

Alternatif olarak, aşağıdaki komutu çalıştırarak bir gruptaki belirli bir işlevi hedefleyebilirsiniz:

firebase deploy --only functions:groupA.function1,groupB.function4

İşlevleri silin

Firebase CLI, daha önce dağıtılan işlevleri silmek için aşağıdaki komutları ve seçenekleri destekler:

  • Belirtilen adla eşleşen tüm işlevleri tüm bölgelerde siler:

    firebase functions:delete FUNCTION-1_NAME

  • Varsayılan olmayan bir bölgede çalışan belirli bir işlevi siler:

    firebase functions:delete FUNCTION-1_NAME --region REGION_NAME

  • Birden fazla işlevi siler:

    firebase functions:delete FUNCTION-1_NAME FUNCTION-2_NAME

  • Belirtilen bir işlev grubunu siler:

    firebase functions:delete GROUP_NAME

  • Onay istemini atlar:

    firebase functions:delete FUNCTION-1_NAME --force

Dağıtım öncesi ve sonrası komut dosyası görevleri oluşturma

Dağıtım öncesi veya sonrası görevleri gerçekleştirmek için kabuk komut dosyalarını firebase deploy komutuna bağlayabilirsiniz. Örneğin, dağıtım öncesi komut dosyası TypeScript kodunu JavaScript'e derleyebilir ve dağıtım sonrası kanca, yöneticileri Firebase Hosting'ye dağıtılan yeni site içeriği hakkında bilgilendirebilir.

Dağıtım öncesi veya sonrası kancaları ayarlamak için firebase.json yapılandırma dosyanıza bash komut dosyaları ekleyin. Kısa komut dosyalarını doğrudan firebase.json dosyasında tanımlayabilir veya proje dizininizdeki diğer dosyalara referans verebilirsiniz.

Örneğin, aşağıdaki komut dosyası, Firebase Hosting adresine başarılı bir dağıtım yapıldıktan sonra Slack mesajı gönderen bir dağıtım sonrası görevi için firebase.json ifadesidir.

"hosting": {
  // ...

  "postdeploy": "./messageSlack.sh 'Just deployed to Firebase Hosting'",
  "public": "public"
}

messageSlack.sh komut dosyası, proje dizininde bulunur ve şu şekilde görünür:

curl -X POST -H 'Content-type: application/json' --data '{"text":"$1"}'
     \https://SLACK_WEBHOOK_URL

Dağıtabileceğiniz öğelerin herhangi biri için predeploy ve postdeploy kancaları ayarlayabilirsiniz. firebase deploy çalıştırmanın, firebase.json dosyanızda tanımlanan tüm dağıtım öncesi ve sonrası görevleri tetiklediğini unutmayın. Yalnızca belirli bir Firebase hizmetiyle ilişkili görevleri çalıştırmak için kısmi dağıtım komutlarını kullanın.

Hem predeploy hem de postdeploy kancaları, komut dosyalarının standart çıkışını ve hata akışlarını terminale yazdırır. Başarısız olan örnekler için aşağıdakileri göz önünde bulundurun:

  • Bir dağıtım öncesi kanca beklendiği gibi tamamlanamazsa dağıtım iptal edilir.
  • Dağıtım herhangi bir nedenle başarısız olursa dağıtım sonrası kancaları tetiklenmez.

Ortam değişkenleri

Dağıtım öncesi ve sonrası kancalarında çalışan komut dosyalarında aşağıdaki ortam değişkenleri kullanılabilir:

  • $GCLOUD_PROJECT: Etkin projenin proje kimliği
  • $PROJECT_DIR: firebase.json dosyasını içeren kök dizin
  • $RESOURCE_DIR: (Yalnızca hosting ve functions komut dosyaları için) Dağıtılacak Hosting veya Cloud Functions kaynaklarını içeren dizinin konumu

Birden çok Realtime Database örneğini yönetme

Firebase projelerinde birden fazla Firebase Realtime Database örneği olabilir. CLI komutları varsayılan olarak varsayılan veritabanı örneğinizle etkileşim kurar.

Ancak --instance DATABASE_NAME işaretini kullanarak varsayılan olmayan bir veritabanı örneğiyle etkileşim kurabilirsiniz. Aşağıdaki komutlar --instance işaretini destekler:

  • firebase database:get
  • firebase database:profile
  • firebase database:push
  • firebase database:remove
  • firebase database:set
  • firebase database:update

Komut referansı

CLI yönetim komutları

Komut Açıklama
help CLI veya belirli komutlarla ilgili yardım bilgilerini görüntüler.
init Mevcut dizinde yeni bir Firebase projesi oluşturur ve ilişkilendirir. Bu komut, geçerli dizinde bir firebase.json yapılandırma dosyası oluşturur.
login CLI'nin Firebase hesabınızla kimliğini doğrular. Web tarayıcıya erişmeniz gerekir.
localhost'a erişime izin vermeyen uzak ortamlarda CLI'ye--no-localhost
login:ci Etkileşimli olmayan ortamlarda kullanılmak üzere bir kimlik doğrulama jetonu oluşturur.
logout CLI'nin Firebase hesabınızdaki oturumunu kapatır.
open İlgili proje kaynaklarını içeren bir tarayıcı açar.
projects:list Erişiminizin olduğu tüm Firebase projelerini listeler.
use CLI için etkin Firebase projesini ayarlar.
Proje takma adlarını yönetir.

Proje yönetimi komutları

Komut Açıklama
Firebase projelerinin yönetimi
projects:addfirebase Mevcut bir Google Cloud projesine Firebase kaynakları ekler.
projects:create Yeni bir Google Cloud projesi oluşturur ve ardından yeni projeye Firebase kaynaklarını ekler.
projects:list Erişiminizin olduğu tüm Firebase projelerini listeler.
Firebase uygulamalarının yönetimi (iOS, Android, Web)
apps:create Etkin projede yeni bir Firebase uygulaması oluşturur.
apps:list Etkin projedeki kayıtlı Firebase uygulamalarını listeler.
apps:sdkconfig Bir Firebase uygulamasının Google hizmetleri yapılandırmasını yazdırır.
setup:web Kullanımdan kaldırıldı. Bunun yerine apps:sdkconfig kullanın ve platform bağımsız değişkeni olarak web'yi belirtin.
Bir Firebase web uygulamasının Google hizmetleri yapılandırmasını yazdırır.
SHA sertifika karmalarının yönetimi (yalnızca Android)
apps:android:sha:create \
FIREBASE_APP_ID SHA_HASH
Belirtilen SHA sertifika karmasını belirtilen Firebase Android uygulamasına ekler.
apps:android:sha:delete \
FIREBASE_APP_ID SHA_HASH
Belirtilen SHA sertifika karmasını belirtilen Firebase Android uygulamasından siler.
apps:android:sha:list \
FIREBASE_APP_ID
Belirtilen Firebase Android uygulamasının SHA sertifika karmalarını listeler.

Dağıtım ve yerel geliştirme

Bu komutlar, Firebase Hosting sitenizi dağıtmanıza ve sitenizle etkileşimde bulunmanıza olanak tanır.

Komut Açıklama
dağıtma Proje dizininizdeki kodu ve öğeleri etkin projeye dağıtır. Firebase Hosting için bir firebase.json yapılandırma dosyası gereklidir.
serve Firebase Hosting yapılandırmanızı kullanarak yerel bir web sunucusu başlatır. Firebase Hosting için bir firebase.json yapılandırma dosyası gereklidir.

App Distribution komutları

Komut Açıklama
appdistribution:distribute \
--app FIREBASE_APP_ID
Derlemeyi test kullanıcılarına sunar.
appdistribution:testers:add Projeye test kullanıcıları ekler.
appdistribution:testers:remove Test kullanıcılarını projeden kaldırır.

App Hosting komutları

Komut Açıklama
apphosting:backends:create \
--project PROJECT_ID \
--location REGION --app APP_ID
App Hosting arka ucu içeren tek bir kod tabanına bağlı yönetilen kaynak koleksiyonunu oluşturur. İsteğe bağlı olarak, mevcut bir Firebase web uygulamasını Firebase uygulama kimliğine göre belirtin.
apphosting:backends:get \
BACKEND_ID \
--project PROJECT_ID \
--location REGION
Arka uçla ilgili herkese açık URL dahil olmak üzere belirli ayrıntıları alır.
apphosting:backends:list \
--project PROJECT_ID
Bir projeyle ilişkili tüm etkin arka uçların listesini alır.
firebase apphosting:backends:delete \
BACKEND_ID \
--project PROJECT_ID \
--location REGION
Arka uçları projeden siler.
firebase apphosting:config:export \
--project PROJECT_ID \
--secrets ENVIRONMENT_NAME
Gizli anahtarları uygulama emülasyonunda kullanılmak üzere dışa aktarır.
Varsayılan olarak apphosting.yaml içinde depolanan gizli anahtarları kullanır veya --secrets değerini alarak karşılık gelen bir apphosting.ENVIRONMENT_NAME.yaml dosyasının bulunduğu herhangi bir ortamı belirtir.
firebase apphosting:rollouts:create \
BACKEND_ID \
--git_branch BRANCH_NAME \
--git_commit COMMIT_ID
Manuel olarak tetiklenen bir kullanıma sunma işlemi oluşturur.
İsteğe bağlı olarak, bir daldaki veya belirli bir commit'teki en son commit'i belirtin. Hiçbir seçenek sağlanmazsa şube listesinden seçim yapılması istenir.
apphosting:secrets:set KEY --project PROJECT_ID \
--location REGION \
--data-file DATA_FILE_PATH
Gizli materyalleri Secret Manager'da depolar.
İsteğe bağlı olarak, gizli verilerin okunacağı bir dosya yolu sağlayın. Standart girişten gizli verileri okumak için _ olarak ayarlayın.
apphosting:secrets:grantaccess KEY BACKEND_ID \
--project PROJECT_ID \
--location REGION
Arka uç hizmet hesabına, sağlanan gizliye erişim izni verir. Böylece App Hosting, derleme veya çalıştırma sırasında gizliye erişebilir.
apphosting:secrets:describe KEY \
--project PROJECT_ID
Bir gizli anahtarın ve sürümlerinin meta verilerini alır.
firebase apphosting:secrets:access \
KEY[@version] \
--project PROJECT_ID
Gizli anahtar ve sürümü verildiğinde gizli anahtar değerine erişir. Varsayılan olarak en son sürüme erişir.

Authentication (kullanıcı yönetimi) komutları

Komut Açıklama
auth:export Etkin projenin kullanıcı hesaplarını JSON veya CSV dosyasına aktarır. Daha fazla bilgi için auth:import ve auth:export sayfasına bakın.
auth:import Kullanıcı hesaplarını JSON veya CSV dosyasından etkin projeye aktarır. Daha fazla bilgi için auth:import ve auth:export sayfasına bakın.

Cloud Firestore komutları

Komut Açıklama
firestore:locations

Cloud Firestore veritabanınız için kullanılabilir konumları listeleyin.

firestore:databases:create DATABASE_ID

Firebase projenizde yerel modda bir veritabanı örneği oluşturun.

Komut aşağıdaki işaretçileri alır:

  • Veritabanının dağıtım yerini belirtmek için --location <region name>. Mevcut konumları listelemek için firebase firestore:locations komutunu çalıştırabileceğinizi unutmayın. Zorunludur.
  • --delete-protection <deleteProtectionState> Belirtilen veritabanının silinmesine izin vermek veya bunu engellemek için. Geçerli değerler ENABLED veya DISABLED şeklindedir. Varsayılan olarak DISABLED değerine ayarlanır.
  • Belirli bir noktadan önceyi kurtarma özelliğinin etkin olup olmadığını belirlemek için --point-in-time-recovery <PITRState> Geçerli değerler ENABLED veya DISABLED şeklindedir. Varsayılan olarak DISABLED değerine ayarlanır. İsteğe bağlı.
firestore:databases:list

Firebase projenizdeki veritabanlarını listeleyin.

firestore:databases:get DATABASE_ID

Firebase projenizdeki belirli bir veritabanının veritabanı yapılandırmasını alın.

firestore:databases:update DATABASE_ID

Firebase projenizdeki belirli bir veritabanının veritabanı yapılandırmasını güncelleyin.

En az bir işaret gereklidir. Komut aşağıdaki işaretçileri alır:

  • --delete-protection <deleteProtectionState> Belirtilen veritabanının silinmesine izin vermek veya bunu engellemek için. Geçerli değerler ENABLED veya DISABLED şeklindedir. Varsayılan olarak DISABLED değerine ayarlanır.
  • Belirli bir noktadan önceyi kurtarma özelliğinin etkin olup olmadığını belirlemek için --point-in-time-recovery <PITRState> Geçerli değerler ENABLED veya DISABLED şeklindedir. Varsayılan olarak DISABLED değerine ayarlanır. İsteğe bağlı.
firestore:databases:delete DATABASE_ID

Firebase projenizdeki bir veritabanını silin.

firestore:indexes

Firebase projenizdeki bir veritabanının dizinlerini listeleyin.

Komut aşağıdaki işaretçiyi alır:

  • --database DATABASE_ID: Dizinlerin listeleneceği veritabanının adını belirtmek için kullanılır. Belirtilmezse varsayılan veritabanı için dizinler listelenir.
firestore:delete

Etkin projenin veritabanındaki dokümanları siler. KSA'yı kullanarak bir koleksiyondaki tüm dokümanları yinelemeli olarak silebilirsiniz.

Cloud Firestore verilerini CLI ile silmenin okuma ve silme maliyetlerine yol açtığını unutmayın. Daha fazla bilgi için Cloud Firestore faturalandırmasını anlama başlıklı makaleyi inceleyin.

Komut aşağıdaki işaretçiyi alır:

  • --database DATABASE_ID Belgelerin silindiği veritabanının adını belirtmek için. Belirtilmezse dokümanlar varsayılan veritabanından silinir. İsteğe bağlı.

Cloud Functions for Firebase komutları

Komut Açıklama
functions:config:clone Başka bir projenin ortamını etkin Firebase projesine kopyalar.
functions:config:get Etkin projenin mevcut yapılandırma değerlerini alırCloud Functions.
functions:config:set Etkin projenin çalışma zamanı yapılandırma değerlerini saklar. Cloud Functions
functions:config:unset Etkin projenin çalışma zamanı yapılandırmasından değerleri kaldırır.
functions:log Dağıtılan Cloud Functions'ten günlükleri okur.

Daha fazla bilgi için ortam yapılandırma belgelerine bakın.

Crashlytics komutları

Komut Açıklama
crashlytics:mappingfile:generateid \
--resource-file=PATH/TO/ANDROID_RESOURCE.XML
Belirtilen Android kaynak (XML) dosyasında benzersiz bir eşleme dosyası kimliği oluşturur.
crashlytics:mappingfile:upload \
--app=FIREBASE_APP_ID \
--resource-file=PATH/TO/ANDROID_RESOURCE.XML \
PATH/TO/MAPPING_FILE.TXT
Bu uygulama için Proguard uyumlu bir eşleme (TXT) dosyası yükler ve bu dosyayı, belirtilen Android kaynağı (XML) dosyasında tanımlanan eşleme dosyası kimliğiyle ilişkilendirir.
crashlytics:symbols:upload \
--app=FIREBASE_APP_ID \
PATH/TO/SYMBOLS
Android'de yerel kitaplık kilitlenmeleri için Crashlytics uyumlu bir simge dosyası oluşturur ve bu dosyayı Firebase sunucularına yükler.

Data Connect komutları

Bu komutlar ve kullanım alanları Data Connect CLI referans kılavuzunda daha ayrıntılı olarak ele alınmıştır.

Komut Açıklama
dataconnect:services:list Firebase projenizde dağıtılan tüm Data Connect hizmetlerini listeler.
dataconnect:sql:diff \
SERVICE_ID
Belirtilen hizmet için yerel şema ile Cloud SQL veritabanı şemanız arasındaki farkları gösterir.Data Connect
dataconnect:sql:migrate \
--force \
SERVICE_ID
Cloud SQL veritabanınızın şemasını yerel Data Connect şemanızla eşleşecek şekilde taşır.
dataconnect:sql:grant\
--role=ROLE \
--email=EMAIL \
SERVICE_ID
Belirtilen kullanıcıya veya hizmet hesabı e-posta adresine SQL rolünü verir.
--role işareti için verilecek SQL rolü şulardan biridir: owner, writer veya reader.
--email işaretçisi için, rolü atamak istediğiniz kullanıcının veya hizmet hesabının e-posta adresini sağlayın.
dataconnect:sdk:generate Data Connect konnektörleriniz için yazılmış SDK'lar oluşturur.

Extensions komutları

Komut Açıklama
ext Firebase Extensions komutlarının nasıl kullanılacağıyla ilgili bilgileri gösterir.
Etkin projeye yüklenen uzantı örneklerini listeler.
ext:configure \
EXTENSION_INSTANCE_ID
Uzantı manifestinizde bir uzantı örneğinin parametre değerlerini yeniden yapılandırır.
ext:info \
PUBLISHER_ID/EXTENSION_ID
Bir uzantı hakkında ayrıntılı bilgileri yazdırır.
ext:install \
PUBLISHER_ID/EXTENSION_ID
Uzantı manifestinize yeni bir uzantı örneği ekler.
ext:list Bir Firebase projesine yüklenen tüm uzantı örneklerini listeler.
Her uzantının örnek kimliğini yazdırır.
ext:uninstall \
EXTENSION_INSTANCE_ID
Bir uzantı örneğini uzantı manifestinizden kaldırır.
ext:update \
EXTENSION_INSTANCE_ID
Bir uzantı örneğini uzantı manifestinizdeki en son sürüme günceller.
ext:export Yüklü tüm uzantı örneklerini projenizden uzantı manifestinize aktarır.

Extensions yayıncı komutları

Komut Açıklama
ext:dev:init Mevcut dizinde yeni bir uzantı için iskelet kod tabanı oluşturur.
ext:dev:list \
PUBLISHER_ID
Bir yayıncı tarafından yüklenen tüm uzantıların listesini yazdırır.
ext:dev:register Bir Firebase projesini uzantı yayıncı projesi olarak kaydeder.
ext:dev:deprecate \
PUBLISHER_ID/EXTENSION_ID \
VERSION_PREDICATE
Sürüm önermeyle eşleşen uzantı sürümlerini desteklenmeyecek.
Sürüm ön ekliği tek bir sürüm (1.0.0 gibi) veya bir sürüm aralığı (>1.0.0 gibi) olabilir.
Sürüm ön ekliği sağlanmazsa söz konusu uzantının tüm sürümleri için desteği sonlandırılır.
ext:dev:undeprecate \
PUBLISHER_ID/EXTENSION_ID \
VERSION_PREDICATE
Sürüm önermeyle eşleşen uzantı sürümlerinin desteklenmesini sonlandırır.
Sürüm ön ekliği tek bir sürüm (1.0.0 gibi) veya bir sürüm aralığı (>1.0.0 gibi) olabilir.
Sürüm ön ekliği sağlanmazsa söz konusu uzantının tüm sürümlerinin desteği sonlandırılmaz.
ext:dev:upload \
PUBLISHER_ID/EXTENSION_ID
Bir uzantının yeni sürümünü yükler.
ext:dev:usage \
PUBLISHER_ID
Bir yayıncı tarafından yüklenen uzantıların yükleme sayılarını ve kullanım metriklerini gösterir.

Hosting komutları

Komut Açıklama
hosting:disable

Etkin Firebase projesi için Firebase Hosting trafiği yayınlamayı durdurur.

Bu komut çalıştırıldıktan sonra projenizin Hosting URL'sinde "Site Bulunamadı" mesajı gösterilir.

Hosting sitenin yönetimi
firebase hosting:sites:create \
SITE_ID

Belirtilen SITE_ID değerini kullanarak etkin Firebase projesinde yeni bir Hosting sitesi oluşturur

(İsteğe bağlı) Aşağıdaki işaretçiyi ileterek yeni siteyle ilişkilendirilecek mevcut bir Firebase web uygulamasını belirtin: --app FIREBASE_APP_ID

firebase hosting:sites:delete \
SITE_ID

Belirtilen Hosting sitesini siler

CLI, siteyi silmeden önce bir onay istemi görüntüler.

(İsteğe bağlı) Aşağıdaki işaretçileri ileterek onay istemini atlayın: -f veya --force

firebase hosting:sites:get \
SITE_ID

Belirtilen Hosting sitesi hakkında bilgi alır

firebase hosting:sites:list

Etkin Firebase projesinin tüm Hosting sitelerini listeler

Önizleme kanallarının yönetimi
firebase hosting:channel:create \
CHANNEL_ID

Belirtilen CHANNEL_ID'i kullanarak varsayılan Hosting sitesinde yeni bir önizleme kanalı oluşturur

Bu komut kanala dağıtılmaz.

firebase hosting:channel:delete \
CHANNEL_ID

Belirtilen önizleme kanalını siler.

Sitelerin canlı kanallarını silemezsiniz.

firebase hosting:channel:deploy \
CHANNEL_ID

Hosting içeriğinizi ve yapılandırmanızı belirtilen önizleme kanalına dağıtır

Önizleme kanalı henüz mevcut değilse bu komut, kanalı dağıtmadan önce varsayılan Hosting sitesinde oluşturur.

firebase hosting:channel:list Varsayılan Hosting sitesindeki tüm kanalları ("canlı" kanal dahil) listeler
firebase hosting:channel:open \
CHANNEL_ID
Belirtilen kanalın URL'sini içeren bir tarayıcı açar veya tarayıcıda açma mümkün değilse URL'yi döndürür
Sürüm klonlama
firebase hosting:clone \
SOURCE_SITE_ID:SOURCE_CHANNEL_ID \
TARGET_SITE_ID:TARGET_CHANNEL_ID

Belirtilen "kaynak" kanaldaki en son dağıtılan sürümü, belirtilen "hedef" kanala kopyalar

Bu komut, belirtilen "hedef" kanala da dağıtılır. "Hedef" kanal henüz mevcut değilse bu komut, kanala dağıtımdan önce "hedef" Hosting sitesinde yeni bir önizleme kanalı oluşturur.

firebase hosting:clone \
SOURCE_SITE_ID:@VERSION_ID \
TARGET_SITE_ID:TARGET_CHANNEL_ID

Belirtilen sürümü, belirtilen "hedef" kanala kopyalar.

Bu komut, belirtilen "hedef" kanala da dağıtılır. "Hedef" kanal henüz mevcut değilse bu komut, kanala dağıtımdan önce "hedef" Hosting sitesinde yeni bir önizleme kanalı oluşturur.

VERSION_ID değerini Firebase konsolunun Hosting kontrol panelinde bulabilirsiniz.

Realtime Database komutları

İlk, varsayılan Realtime Database örneğinizi Firebase konsolunda veya genel firebase init iş akışını ya da belirli firebase init database akışını kullanarak oluşturabileceğinizi unutmayın.

Oluşturulan örnekleri, Birden fazla Realtime Database örneğini yönetme bölümünde açıklandığı şekilde yönetebilirsiniz.

Komut Açıklama
database:get Etkin projenin veritabanından veri alır ve JSON olarak gösterir. Dizine eklenen verilerde sorgu yapmayı destekler.
database:instances:create Belirtilen bir örnek adıyla veritabanı örneği oluşturur. Belirtilen bir bölgede veritabanı oluşturmak için --location seçeneğini kabul eder. Bu seçenekle kullanılacak bölge adları için projeniz için konum seçme bölümüne bakın. Mevcut proje için veritabanı örneği yoksa örnek oluşturmak üzere firebase init akışını çalıştırmanız istenir.
database:instances:list Bu projenin tüm veritabanı örneklerini listeleyin. Belirli bir bölgede veritabanlarını listeleme için --location seçeneğini kabul eder. Bu seçenekle kullanılacak bölge adları için projeniz için konum seçme bölümüne bakın.
database:profile Etkin projenin veritabanındaki işlemlerin profilini oluşturur. Daha fazla bilgi için Realtime Database işlem türlerine bakın.
database:push Etkin projenin veritabanında belirtilen bir konumdaki listeye yeni veriler gönderir. Dosya, STDIN veya komut satırı bağımsız değişkeninden giriş alır.
database:remove Etkin projenin veritabanında belirtilen bir konumdaki tüm verileri siler.
database:set Etkin projenin veritabanında belirtilen bir konumdaki tüm verileri değiştirir. Dosya, STDIN veya komut satırı bağımsız değişkeninden giriş alır.
database:update Etkin projenin veritabanında belirtilen bir konumda kısmi güncelleme yapar. Dosya, STDIN veya komut satırı bağımsız değişkeninden giriş alır.

Remote Config komutları

Komut Açıklama
remoteconfig:versions:list \
--limit NUMBER_OF_VERSIONS
Şablonun en son on sürümünü listeler. Mevcut tüm sürümleri döndürmek için 0 değerini belirtin veya döndürülen sürüm sayısını sınırlamak için isteğe bağlı olarak --limit seçeneğini iletin.
remoteconfig:get \
--v, version_number VERSION_NUMBER
--o, output FILENAME
Şablonu sürüme göre alır (varsayılan olarak en son sürüm) ve parametre gruplarını, parametreleri, koşul adlarını ve sürümünü bir tabloda döndürür. İsteğe bağlı olarak, çıkışı -o, FILENAME ile belirli bir dosyaya yazabilirsiniz.
remoteconfig:rollback \
--v, version_number VERSION_NUMBER
--force
Remote Config şablonunu belirtilen önceki bir sürüm numarasına veya varsayılan olarak hemen önceki sürüme (mevcut sürüm -1) geri döndürür. --force iletilmezse geri almaya devam etmeden önce E/H seçeneğini gösterir.