Firebase CLI referansı

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

Firebase KSA'yı kullanmadan önce bir Firebase projesi oluşturun.

KSA'yı ayarlama veya güncelleme

Firebase CLI'yı yükleme

Firebase CLI'yı işletim sisteminiz, deneyim düzeyiniz ve/veya kullanım alanınızla eşleşen bir yöntem kullanarak yükleyebilirsiniz. KSA'yı nasıl yüklediğinize bakılmaksızın, aynı işlevlere ve firebase komutuna erişebilirsiniz.

Windows macOS Linux

Windows

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

Seçenek Açıklama Önerilen kullanıcılar...
bağımsız ikili program KSA için bağımsız ikili programı indirin. Ardından, firebase komutunu çalıştırabileceğiniz bir kabuk açmak için yürütülebilir dosyaya erişebilirsiniz. Yeni geliştiriciler

Node.js'yi kullanmayan veya bu konuda bilgisi olmayan geliştiriciler
npm KSA'yı yüklemek ve genel olarak kullanılabilen firebase komutunu etkinleştirmek için npm'yi (Düğüm Paketi 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 şu adımları uygulayın:

  1. Windows için Firebase CLI ikili programını indirin.

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

  3. Giriş yapma ve KSA'yı test etme adımına geçin.

npm

Firebase CLI'yi yüklemek amacıyla npm (Düğüm Paket Yöneticisi) kullanmak için şu adımları uygulayın:

  1. nvm-windows (Düğüm 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. Şu komutu çalıştırarak npm üzerinden Firebase CLI'yi yükleyin:

    npm install -g firebase-tools

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

  3. Giriş yapma ve KSA'yı test etme adımına geçin.

macOS veya Linux

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

Seçenek Açıklama Önerilen kullanıcılar...
otomatik yükleme komut dosyası İşletim sisteminizi otomatik olarak algılayan, en son CLI sürümünü indiren, ardından genel olarak kullanılabilen firebase komutunu etkinleştiren tek bir komut çalıştırın. Yeni geliştiriciler

Node.js'yi kullanmayan veya bu konuda bilgisi olmayan geliştiriciler

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

otomatik yükleme komut dosyası

Firebase CLI'ı otomatik yükleme komut dosyasını kullanarak yüklemek için şu 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 CLI sürümünü indirir, ardından genel olarak kullanılabilen firebase komutunu etkinleştirir.

  2. Giriş yapma ve KSA'yı test etme adımına geçin.

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

bağımsız ikili program

İşletim sisteminize özel Firebase CLI için ikili dosyayı indirmek ve çalıştırmak üzere aşağıdaki adımları uygulayın:

  1. İşletim sisteminiz için Firebase CLI ikili programını indirin: macOS | Linux

  2. (İsteğe bağlı) Genel olarak kullanılabilen firebase komutunu ayarlayın.

    1. chmod +x ./firebase_tools komutunu çalıştırarak ikili dosyayı yürütülebilir hale getirin.
    2. İkili programın yolunu PATH'ınıza ekleyin.
  3. Giriş yapma ve KSA'yı test etme adımına geçin.

npm

Firebase CLI'yi yüklemek amacıyla npm (Düğüm Paketi Yöneticisi) uygulamasını kullanmak için şu adımları uygulayın:

  1. nvm (Düğüm Sürüm Yöneticisi) kullanarak Node.js'yi yükleyin.
    Düğüm.js'nin yüklenmesi npm komut araçlarını otomatik olarak yükler.

  2. Şu komutu çalıştırarak npm üzerinden Firebase CLI'yi yükleyin:

    npm install -g firebase-tools

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

  3. Giriş yapma ve KSA'yı test etme adımına geçin.

Giriş yapın ve Firebase CLI'yi test edin

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

  1. Şu komutu çalıştırarak Google Hesabınızla Firebase'e giriş yapın:

    firebase login

    Bu komut yerel makinenizi Firebase'e bağlar ve Firebase projelerinize erişmenizi sağlar.

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

    firebase projects:list

    Görüntülenen liste, Firebase konsolunda listelenen Firebase projeleriyle aynı olmalıdır.

En son CLI sürümüne güncelleme

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 KSA'yı nasıl yüklediğinize bağlıdır.

Windows

  • bağımsız ikili program: Yeni sürümü indirin, ardından sisteminizde değiştirin
  • npm: Çalıştırma npm install -g firebase-tools

macOS

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

Linux

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

CLI'yı CI sistemleriyle kullanma

Firebase CLI, kimlik doğrulamayı tamamlamak için bir tarayıcı gerektirir ancak CLI, CI ve diğer gözetimsiz ortamlarla tamamen uyumludur.

  1. Tarayıcısı olan bir makineye Firebase CLI'yı 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 bir Google hesabı kullanarak giriş yapın.

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

  5. Çıkış jetonunu, CI sisteminizde güvenli ancak erişilebilir bir şekilde depolayı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 ortam değişkeni olarak depolayın FIREBASE_TOKEN. Sisteminiz otomatik olarak jetonu kullanacaktır.

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

Firebase projesini başlatma

Firebase projesine dağıtım yapmak gibi KSA kullanılarak gerçekleştirilen birçok yaygın görev 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 dizin, firebase.json yapılandırma dosyası içerir.

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 konusunda size yol gösterir. Proje başlatma işlemi sırasında Firebase CLI aşağıdaki görevleri tamamlamanızı ister:

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

    Bu adımda, seçili ürünler için belirli dosyalara yönelik yapılandırmalar belirlemeniz istenir. Bu yapılandırmalar hakkında daha fazla bilgi için ilgili ürünün belgelerine bakın (ör. Barındırma). Daha fazla Firebase ürünü ayarlamak için firebase init uygulamasını daha sonra istediğiniz zaman çalıştırabileceğinizi unutmayın.

  • Varsayılan Firebase projesi seçin.

    Bu adım, mevcut proje dizinini bir Firebase projesiyle ilişkilendirir. Böylece, projeye özgü komutlar (firebase deploy gibi) uygun Firebase projesinde çalıştırılır.

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

Firebase, başlatma işleminin sonunda yerel uygulama dizininizin kök dizininde aşağıdaki iki dosyayı otomatik olarak oluşturur:

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

  • Projenizin aliases depolayan .firebaserc dosyasıdır.

firebase.json dosyası

firebase init komutu, proje dizininizin kök dizininde bir firebase.json yapılandırma dosyası oluşturur.

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

Doğrudan firebase.json dosyasında çoğu Firebase Barındırma seçeneğini yapılandırabilirsiniz. Ancak Firebase CLI ile dağıtılabilen diğer Firebase hizmetlerinde firebase init komutu, bu hizmetlerin ayarlarını tanımlayabileceğiniz belirli dosyalar (ör. Cloud Functions için index.js dosyası) oluşturur. firebase.json dosyasında önceden dağıtım veya dağıtım sonrası kancaları da ayarlayabilirsiniz.

Aşağıda, başlatma sırasında Firebase Hosting, Cloud Firestore ve Cloud Functions for Firebase'i (TypeScript kaynağı ve lint seçenekleri seçili olarak) seçerseniz varsayılan ayarlara sahip bir firebase.json dosyası örneği 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 kullanabilirsiniz.

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

firebase init komutunu ç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.

Projeniz birden fazla Cloud Firestore veritabanı içeriyorsa firebase.json dosyanızı farklı Cloud Firestore Güvenlik Kuralları ve veritabanı dizin kaynak dosyalarını her veritabanıyla ilişkilendirmek için düzenleyin. Dosyayı, her veritabanı için bir giriş olacak şekilde 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 dosyaları

İşlev dağıtımı sırasında CLI, functions dizinindeki yoksayılacak dosyaların listesini otomatik olarak belirtir. Bu, dağıtımınızın veri boyutunu büyütebilecek gereksiz dosyalara dağıtım yapılmasını engeller.

Varsayılan olarak yoksayılan dosyaların listesi JSON biçiminde gösterilir:

"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 sakladığınızdan (veya liste yoksa eklediğinizden) emin olun.

Proje takma adlarını yönetme

Aynı proje diziniyle birden fazla Firebase projesini ilişkilendirebilirsiniz. Örneğin, hazırlık ve üretim için iki Firebase projesini kullanmak isteyebilirsiniz. Farklı proje ortamları kullanarak değişiklikleri üretime dağıtmadan önce doğrulayabilirsiniz. firebase use komutu sayesinde takma adlar arasında geçiş yapabilir ve yeni takma adlar oluşturabilirsiniz.

Proje takma adı ekleyin

Projeyi başlatma sırasında bir Firebase projesi seçtiğinizde, projeye otomatik olarak default takma adı atanır. Bununla birlikte, projeye özel komutların farklı bir Firebase projesinde çalıştırılmasına izin verirken aynı proje dizinini kullanmak için proje dizininizin içinden 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ı kullanın

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

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

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

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

Herhangi bir CLI komutuyla --project işaretini ileterek şu anda etkin proje olarak kullanılan kodu geçersiz kılabilirsiniz. Örnek: KSA'nızı, staging takma adı atadığınız bir Firebase projesinde çalışacak şekilde ayarlayabilirsiniz. prod takma adı atadığınız Firebase projesinde tek bir komut çalıştırmak istiyorsanız firebase deploy --project=prod gibi bir komut ç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 kontrolünde kontrol etmeniz gerekir. Ancak açık kaynak projeler veya başlangıç şablonları için genellikle .firebaserc dosyanızı kontrol etmemeniz gerekir.

Yalnızca kullanım amaçlı bir geliştirme projeniz varsa her komutla --project işaretini iletebilir veya Firebase projesine takma ad atamadan firebase use PROJECT_ID komutunu çalıştırabilirsiniz.

Firebase projenizi yerel olarak sunma 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 komutundaki bir işarette virgülle ayrılmış liste kullanabilirsiniz.

Aşağıdaki görevlerden herhangi birini gerçekleştirmek isterseniz yerel proje dizininizin kök dizininden aşağıdaki komutu çalıştırın:

  • Firebase tarafından 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 bir yerel URL'de Hosting emülasyonu yapmak için üretim (dağıtılmış) HTTP işlevlerinizi kullanmak istiyorsanız.
firebase serve --only hosting

Yerel HTTP işlevlerini kullanarak projenizi emüle edin

Yerel HTTP işlevlerini kullanarak projenizi emüle etmek için proje dizininizde aşağıdaki komutları çalıştırın.

  • Yerel URL'lerde test amacıyla HTTP işlevlerine öykünmek ve barındırmak için aşağıdaki komutlardan birini kullanın:

    firebase serve
    firebase serve --only functions,hosting // uses a flag
  • Yalnızca HTTP işlevlerine öykünmek 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 tarafından yapılan 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 yapmak isterseniz --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 öğelerin dağıtımını yönetir:

  • Firebase Barındırma sitelerinizin yeni sürümleri
  • Firebase için yeni, güncellenmiş veya mevcut Cloud Functions
  • Firebase Realtime Database Kuralları
  • Cloud Storage for Firebase Kuralları
  • Cloud Firestore Kuralları
  • Cloud Firestore dizinleri

Bir Firebase projesine dağıtım yapmak 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 Hosting sayfasında 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 bir firebase.json dosyası bulunmalıdır. Bu dosya, firebase init komutu kullanılarak 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ı için dağıtım çakışmaları

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 bir başka seçenek de kısmi dağıtım kullanmak ve kuralları yalnızca Firebase konsolunda tanımlamaktır.

Dağıtım kotaları

Çok düşük bir ihtimal de olsa Firebase dağıtım işlemlerinizin oranını veya hacmini sınırlayan bir kotayı aşmış olabilirsiniz. Örneğin, çok sayıda işlev dağıtırken HTTP 429 Quota hata mesajı alabilirsiniz. Bu tür sorunları çözmek için kısmi dağıtım kullanmayı deneyin.

Dağıtımı geri çekme

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

Firebase Realtime Database, Cloud Storage for Firebase veya Cloud Firestore'un güvenlik kuralları sürümlerini geri çekmek şu anda 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ülle ayrılmış liste kullanabilirsiniz. Örneğin, aşağıdaki komut Firebase Hosting içeriğini 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. İşaretlerdeki adlar firebase.json yapılandırma dosyanızdaki anahtarlara karşılık gelir.

İşaret söz dizimi Dağıtılan hizmet veya özellik
--only hosting Firebase Hosting içeriği
--only database Firebase Realtime Database kuralları
--only storage Cloud Storage for Firebase kuralları
--only firestore Tüm yapılandırılmış veritabanları için Cloud Firestore kuralları ve dizinleri
--only functions Cloud Functions for Firebase (bu işaretin daha spesifik sürümleri mümkündür)

Belirli işlevleri dağıtma

İşlevleri 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 işlevleri /functions/index.js dosyanızda dışa aktarma grupları halinde gruplandırmaktır. Gruplandırma işlevleri, tek bir komut kullanarak birden fazla işlevi dağıtmanıza olanak tanır.

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

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

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

Bu örnekte, ayrı bir functions/groupB.js dosyası, groupB içindeki işlevleri özel olarak tanımlayan ek işlevler içerir. Örneğin:

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

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 grup içindeki belirli bir işlevi hedefleyebilirsiniz:

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

İşlevleri silme

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

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

    firebase functions:delete FUNCTION-1_NAME

  • Varsayılan olmayan bir bölgede çalışan belirtilen 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

Önceden dağıtım ve dağıtım sonrası komut dosyası kullanılan görevleri ayarlama

Dağıtım öncesi veya dağıtım sonrası görevleri gerçekleştirmek için kabuk komut dosyalarını firebase deploy komutuna bağlayabilirsiniz. Örneğin, bir önceden dağıtım komut dosyası TypeScript kodunu JavaScript'e aktarabilir ve bir dağıtım sonrası kancası, Firebase Hosting'e yeni site içeriği dağıtımlarının yöneticilerini bilgilendirebilir.

Önceden dağıtım veya dağıtım 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'e başarılı dağıtım sonrasında Slack mesajı gönderen bir dağıtım sonrası görevinin firebase.json ifadesidir.

"hosting": {
  // ...

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

messageSlack.sh komut dosyası, proje dizininde bulunur ve şuna benzer:

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

Dağıtabileceğiniz öğeler için predeploy ve postdeploy kancaları ayarlayabilirsiniz. firebase deploy çalıştırmanın firebase.json dosyanızda tanımlanan tüm önceden dağıtım ve dağıtım sonrası görevleri tetikleyeceğ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. Hata durumları için aşağıdakilere dikkat edin:

  • Önceden dağıtım kancası 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

Önceden dağıtım ve postdeploy kancalarında çalışan komut dosyalarında aşağıdaki ortam değişkenleri bulunur:

  • $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 fazla Realtime Database örneğini yönetme

Bir Firebase projesinin birden fazla Firebase Realtime Database örneği olabilir. Varsayılan olarak, CLI komutları default 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
yardım KSA veya belirli komutlarla ilgili yardım bilgilerini görüntüler.
init Geçerli dizinde yeni bir Firebase projesini ilişkilendirir ve oluşturur. Bu komut, geçerli dizinde bir firebase.json yapılandırma dosyası oluşturur.
login CLI'ın kimliğini Firebase hesabınız için doğrular. Web tarayıcısına erişim gerektirir.
localhost erişimine izin vermeyen uzak ortamlarda CLI'ya giriş yapmak için --no-localhost işaretini kullanın.
login:ci Etkileşimli olmayan ortamlarda kullanmak için kimlik doğrulama jetonu oluşturur.
çıkış Firebase hesabınızdaki CLI oturumunu kapatır.
açık İlgili proje kaynaklarını görebileceğiniz bir tarayıcı açar.
projects:list Erişiminizin olduğu tüm Firebase projelerini listeler.
kullanım 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, 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 değerini 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ı için SHA sertifika karmalarını listeler.

Dağıtım ve yerel geliştirme

Bu komutlar, Firebase Hosting sitenizi dağıtmanızı ve sitenizle etkileşim kurmanızı sağlar.

Komut Açıklama
deploy Kod ve öğeleri proje dizininizden etkin projeye dağıtır. Firebase Hosting için firebase.json yapılandırma dosyası gerekir.
yayınlama Firebase Barındırma yapılandırmanızla yerel bir web sunucusu başlatır. Firebase Hosting için firebase.json yapılandırma dosyası gerekir.

App Distribution komutları

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

Kimlik doğrulama (kullanıcı yönetimi) komutları

Komut Açıklama
auth:dışa aktarma Etkin projenin kullanıcı hesaplarını bir JSON veya CSV dosyasına aktarır. Daha ayrıntılı bilgi için auth:import ve auth:export sayfasına bakın.
auth:import Kullanıcı hesaplarını bir JSON veya CSV dosyasından etkin projeye aktarır. Daha ayrıntılı 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şaretleri alır:

  • Veritabanının dağıtım konumunu belirtmek için --location <region name> öğesini kullanın. Kullanılabilir konumları listelemek için firebase firestore:locations çalıştırabilirsiniz. Zorunludur.
  • Belirtilen veritabanının silinmesine izin vermek veya önlemek için --delete-protection <deleteProtectionState>. Geçerli değerler ENABLED veya DISABLED değerleridir. Varsayılan olarak DISABLED değerine ayarlanır.
  • Belirli bir noktadan önceyi kurtarma özelliğinin etkinleştirilip etkinleştirilmeyeceğini ayarlamak için --point-in-time-recovery <PITRState> işlevini kullanın. Geçerli değerler ENABLED veya DISABLED'dir. 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 projenizde belirtilen bir veritabanı için veritabanı yapılandırmasını alın.

firestore:databases:update DATABASE_ID

Firebase projenizde belirtilen bir veritabanının veritabanı yapılandırmasını güncelleyin.

En az bir işaret gerekli. Komut aşağıdaki işaretleri alır:

  • Belirtilen veritabanının silinmesine izin vermek veya önlemek için --delete-protection <deleteProtectionState>. Geçerli değerler ENABLED veya DISABLED değerleridir. Varsayılan olarak DISABLED değerine ayarlanır.
  • Belirli bir noktadan önceyi kurtarma özelliğinin etkinleştirilip etkinleştirilmeyeceğini ayarlamak için --point-in-time-recovery <PITRState> işlevini kullanın. Geçerli değerler ENABLED veya DISABLED'dir. 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ı için dizinleri listeleme.

Bu komut aşağıdaki işareti alır:

  • --database: Dizinler listelenecek veritabanının adını belirtmek için DATABASE_ID. Sağlanmazsa varsayılan veritabanı için dizinler listelenir.
firestore:delete

Etkin projenin veritabanındaki belgeleri siler. CLI kullanarak bir koleksiyondaki tüm belgeleri tekrar tekrar silebilirsiniz.

CLI ile Cloud Firestore verilerinin silinmesi, okuma ve silme ücretlerine neden olur. Daha fazla bilgi için Cloud Firestore faturalandırmasını anlama bölümüne bakın.

Bu komut aşağıdaki işareti alır:

  • --database DATABASE_ID Belgelerin silineceği veritabanının adını belirtir. Belirtilmezse belgeler 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 klonlar.
functions:config:get Etkin projenin Cloud Functions mevcut yapılandırma değerlerini alır.
functions:config:set Etkin projenin Cloud Functions çalışma zamanı yapılandırma değerlerini depolar.
functions:config:unset Etkin projenin çalışma zamanı yapılandırmasından değerleri kaldırır.
functions:log Dağıtılan Cloud Functions'taki 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:yükleme \
--app=FIREBASE_APP_ID \
--resource-file=PATH/TO/ANDROID_RESOURCE.XML \
PATH/TO/MAPPING_FILE.TXT
Bu uygulama için ProGuard uyumlu eşleme (TXT) dosyası yükler ve bunu, belirtilen Android kaynak (XML) dosyasında belirtilen 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 sembol dosyası oluşturur ve bunu Firebase sunucularına yükler.

Uzantı komutları

Komut Açıklama
ext Firebase Extensions komutlarının nasıl kullanılacağıyla ilgili bilgileri görüntüler.
Etkin projede yüklü uzantı örneklerini listeler.
ext:configure \
EXTENSION_INSTANCE_ID
Uzantı manifest'inizdeki bir uzantı örneğinin parametre değerlerini yeniden yapılandırır.
ext:info \
PUBLISHER_ID/EXTENSION_ID
Bir uzantıyla ilgili ayrıntılı bilgileri yazdırır.
ext:install \
PUBLISHER_ID/EXTENSION_ID
Uzantı manifest'inize bir uzantının yeni bir örneğini ekler.
ext:list (uzantı:list) Bir Firebase projesinde yüklü tüm uzantı örneklerini listeler.
Her bir uzantının örnek kimliğini yazdırır.
ext:uninstall \
EXTENSION_INSTANCE_ID
Uzantı manifestinizden bir uzantı örneğini kaldırır.
ext:güncelleme \
EXTENSION_INSTANCE_ID
Bir uzantı örneğini uzantı manifestinizdeki en son sürüme günceller.
ext:export Tüm yüklü uzantı örneklerini projenizden uzantı manifestinize aktarır.

Uzantı yayıncı komutları

Komut Açıklama
ext:dev:init Geçerli dizinde yeni bir uzantı için iskelet kod tabanını başlatır.
ext:dev:list \
PUBLISHER_ID
Yayıncı tarafından yüklenen tüm uzantıların bir listesini yazdırır.
ext:dev:register Firebase projelerini uzantı yayıncı projesi olarak kaydeder.
ext:dev:deprecate \
PUBLISHER_ID/EXTENSION_ID \
VERSION_PREDICATE
Sürüm koşuluyla eşleşen uzantı sürümlerini kullanımdan kaldırır.
Sürüm koşulu, tek bir sürüm (ör. 1.0.0) veya bir sürüm aralığı (>1.0.0 gibi) olabilir.
Sürüm koşulu sağlanmazsa bu uzantının tüm sürümlerini kullanımdan kaldırır.
ext:dev:undeprecate \
PUBLISHER_ID/EXTENSION_ID \
VERSION_PREDICATE
Sürüm koşuluyla eşleşen uzantı sürümlerini kullanımdan kaldırır.
Sürüm koşulu, tek bir sürüm (ör. 1.0.0) veya bir sürüm aralığı (>1.0.0 gibi) olabilir.
Sürüm koşulu sağlanmazsa bu uzantının tüm sürümlerini kullanımdan kaldırır.
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örüntüler.

Barındırma komutları

Komut Açıklama
hosting:disable

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

Bu komutu çalıştırdıktan sonra projenizin Hosting URL'sinde "Site Bulunamadı" mesajı görüntülenir.

Hosting sitelerinin yönetimi
firebase barındırma:sites:create \
SITE_ID

Belirtilen SITE_ID öğesini kullanarak etkin Firebase projesinde yeni bir Hosting sitesi oluşturur

(İsteğe bağlı) Aşağıdaki işareti ileterek, yeni siteyle ilişkilendirilecek mevcut bir Firebase Web Uygulaması belirtin: --app FIREBASE_APP_ID

firebase barındırma:sites:sil \
SITE_ID

Belirtilen Hosting sitesini siler

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

(İsteğe bağlı) Şu işaretleri ileterek onay istemini atlayın: -f veya --force

firebase barındırma:sites:get \
SITE_ID

Belirtilen Hosting sitesiyle ilgili bilgileri alır

firebase barındırma:sites:list

Etkin Firebase projesi için tüm Hosting sitelerini listeler

Önizleme kanallarının yönetimi
firebase barındırma:channel:create \
CHANNEL_ID

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

Bu komut, kanala dağıtılmaz.

firebase barındırma:channel:delete \
CHANNEL_ID

Belirtilen önizleme kanalını siler

Bir sitenin canlı kanalını silemezsiniz.

firebase barındırma: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, kanala dağıtmadan önce default Hosting sitesinde kanalı oluşturur.

firebase Hosting:channel:list Varsayılan Hosting sitesinde tüm kanalları ("canlı" kanal dahil) listeler
firebase barındırma:channel:open \
CHANNEL_ID
Tarayıcıyı belirtilen kanalın URL'sine açar veya tarayıcıda açmak mümkün değilse URL'yi döndürür
Sürüm klonlama
firebase barındırma:clone \
SOURCE_SITE_ID:SOURCE_CHANNEL_ID \
TARGET_SITE_ID:TARGET_CHANNEL_ID

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

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

firebase barındırma:clone \
SOURCE_SITE_ID:@VERSION_ID \
TARGET_SITE_ID:TARGET_CHANNEL_ID

Belirtilen sürümü belirtilen "hedef" kanala klonlar

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

VERSION_ID eklentisini Firebase konsolunun Barındırma kontrol panelinde bulabilirsiniz.

Realtime Database komutları

Başlangıçtaki varsayılan Realtime Database örneğinizi Firebase konsolunda, genel firebase init iş akışını veya belirli firebase init database akışını kullanarak oluşturabileceğinizi unutmayın.

Örnekler oluşturulduktan sonra bunları Birden çok Realtime Database örneğini yönetme bölümünde açıklandığı şekilde yönetebilirsiniz.

Komut Açıklama
database:get Etkin projenin veritabanından verileri getirir ve JSON olarak görüntüler. Dizine eklenen verilerde sorgulama yapılmasını destekler.
database:instances:create Belirtilen örnek adıyla bir 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. Geçerli proje için herhangi bir veritabanı örneği yoksa örnek oluşturmak için firebase init akışını çalıştırmanız istenir.
database:instances:list Bu projenin tüm veritabanı örneklerini listeleyin. Belirtilen bir bölgedeki veritabanlarını listelemek 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ında bir işlem profili oluşturur. Daha fazla bilgi için Realtime Database işlem türleri bölümüne bakın.
database:push Yeni verileri etkin projenin veritabanında belirtilen bir konumdaki bir listeye aktarır. Bir 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. Bir 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 gerçekleştirir. Bir 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ümlerin sayısını sınırlamak için isteğe bağlı olarak --limit seçeneğini iletin.
remoteconfig:get \
--v, sürüm_numarası VERSION_NUMBER
--o, çıkış FILENAME
Şablonu sürüme göre alır (varsayılan olarak en son sürümü alır) ve parametre gruplarını, parametreleri, koşul adlarını ve sürümünü bir tabloya çıkarır. Dilerseniz çıkışı -o, FILENAME ile belirli bir dosyaya yazabilirsiniz.
remoteconfig:rollback \
--v, sürüm_numarası VERSION_NUMBER
--force
Remote Config şablonunu belirtilen bir önceki sürüm numarasına veya varsayılan olarak bir önceki sürüme (geçerli sürüm -1) geri döndürür. --force iletilmezse geri alma işlemine geçmeden önce E/H istemi görüntülenir.