Firebase CLI referansı

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

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

KSA'yı ayarlama veya güncelleme

Firebase CLI'ı yükleme

Firebase CLI'yı, işletim sisteminize, deneyim seviyenize ve/veya kullanım alanınıza uygun bir yöntem kullanarak yükleyebilirsiniz. KSA'yı nasıl yüklediğinize bakılmaksızın aynı işleve ve firebase komutuna erişebilirsiniz.

Windows macOS Linux

Windows

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

Seçenek Açıklama Önerilen öneriler...
bağımsız ikili program KSA için bağımsız ikili programı 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 aşina olmayan geliştiriciler
npm CLI'yı yüklemek ve genel olarak kullanılabilir firebase komutunu etkinleştirmek için npm (Düğüm Paketi Yöneticisi) kullanın. Node.js kullanan geliştiriciler

bağımsız ikili program

Firebase CLI için ikili programı indirip çalıştırmak üzere aşağıdaki 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 programa erişin.

  3. Giriş yapma ve KSA'yı test etme işlemine devam edin.

npm

Firebase CLI'ı yüklemek amacıyla npm uygulamasını (Düğüm Paketi Yöneticisi) kullanmak için aşağıdaki 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. Aşağıdaki komutu çalıştırarak npm üzerinden Firebase CLI'ı yükleyin:

    npm install -g firebase-tools

    Bu komut, genel olarak kullanılabilen firebase komutunu etkinleştirir.

  3. Giriş yapma ve KSA'yı test etme işlemine devam edin.

macOS veya Linux

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

Seçenek Açıklama Önerilen öneriler...
otomatik yükleme komut dosyası İşletim sisteminizi otomatik olarak algılayan, en son CLI 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 kullanmayan veya aşina 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 programı iş akışınıza uygun şekilde yapılandırabilir ve çalıştırabilirsiniz. KSA kullanarak tamamen özelleştirilebilir iş akışları
npm CLI'yı yüklemek ve genel olarak kullanılabilir firebase komutunu etkinleştirmek için npm (Düğüm Paketi Yöneticisi) kullanın. Node.js kullanan geliştiriciler

otomatik yükleme komut dosyası

Otomatik yükleme komut dosyasını kullanarak Firebase CLI'ı 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 CLI sürümünü indirir ve ardından tüm dünyada kullanılabilen firebase komutunu etkinleştirir.

  2. Giriş yapma ve KSA'yı test etme işlemine 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 için ikili programı indirip ç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 programı yürütülebilir hale getirin.
    2. İkili programın yolunu PATH dosyanıza ekleyin.
  3. Giriş yapma ve KSA'yı test etme işlemine devam edin.

npm

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

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

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

    npm install -g firebase-tools

    Bu komut, genel olarak kullanılabilen firebase komutunu etkinleştirir.

  3. Giriş yapma ve KSA'yı test etme işlemine devam edin.

Giriş yapın ve Firebase CLI'ı 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 düzgün şekilde yüklendiğini ve hesabınıza erişip erişmediğ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.

KSA'yı en son sürümüne güncelleyin

Genel olarak, 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'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: npm install -g firebase-tools komutunu çalıştırın

macOS

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

Linux

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

KSA'yı CI sistemleriyle kullanma

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

  1. Tarayıcısı olan bir makineye Firebase CLI'ı 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 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 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 başlatma

CLI kullanılarak gerçekleştirilen birçok yaygın görev (ör. Firebase projesine dağıtım yapmak) proje dizini gerektirir. firebase init komutunu kullanarak bir proje dizini oluşturursunuz. Proje dizini genellikle kaynak kontrol kök dizininizle aynı dizindir ve firebase init çalıştırıldıktan sonra dizin bir 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 sırasında Firebase CLI sizden şu görevleri tamamlamanızı ister:

  • Firebase projenizde ayarlanacak Firebase ürünlerini seçin.

    Bu adımda, seçilen ürünlere ilişkin belirli dosyalar için yapılandırmaları ayarlamanız istenir. Bu yapılandırmalar hakkında daha fazla bilgi için ilgili ürünün belgelerine (ör. Barındırma) bakın. Daha fazla Firebase ürünü ayarlamak için istediğiniz zaman firebase init çalıştırabileceğinizi unutmayın.

  • Varsayılan bir Firebase projesi seçin.

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

    Aynı proje diziniyle birden fazla Firebase projesini ilişkilendirmek de mümkündür.

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

firebase.json dosyası

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

firebase.json dosyası, proje dizininizdeki hangi dosya ve ayarların Firebase projenize dağıtıldığını belirttiğinden öğeleri Firebase CLI ile dağıtmak için gereklidir. Bazı ayarlar proje dizininizde veya Firebase konsolunuzda tanımlanabileceğinden olası dağıtım çakışmalarını giderdiğinizden emin olun.

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

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

{
  "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ılsa da 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 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.

Projenizde birden fazla Cloud Firestore veritabanı varsa firebase.json dosyanızı düzenleyerek her bir veritabanıyla farklı Cloud Firestore Güvenlik Kuralları ve veritabanı dizini kaynak dosyalarını ilişkilendirin. 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 anında CLI, functions dizinindeki yoksayılacak dosya listesini otomatik olarak belirtir. Bu durum, dağıtımınızın veri boyutunu büyütebilecek harici arka uç dosyalarına dağıtım yapılmasını engeller.

Varsayılan olarak yoksayılan dosyaların JSON biçiminde gösterildiği liste:

"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 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 projesini, üretim için de başka bir proje 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ı ekleyin

Proje 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ılıp aynı proje dizinini kullanmasına izin vermek için proje dizininizden aşağıdaki komutu çalıştırın:

firebase use --add

Bu komutta başka bir Firebase projesi seçmeniz ve projeyi takma ad olarak atamanız istenir. 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 dizininizde aşağıdaki komutlardan birini çalıştırın.

Komut Açıklama
firebase use Proje dizininiz için şu anda tanımlanmış olan takma adların listesini görüntüleyin
firebase use \
PROJECT_ID|ALIAS
Tüm komutları, belirtilen Firebase projesinde çalışacak ş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 ayarlamak 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.

--project işaretini herhangi bir CLI komutuyla ileterek o anda etkin olan proje olarak kullanılmakta olan öğeleri geçersiz kılabilirsiniz. Örnek: KSA'nızı, staging takma adını atadığınız bir Firebase projesinde çalışacak şekilde ayarlayabilirsiniz. prod takma adını atadığınız Firebase projesinde tek bir komut çalıştırmak istiyorsanız şu komutu çalıştırabilirsiniz: örneğin firebase deploy --project=prod.

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üne eklemelisiniz. Ancak, açık kaynak projeleri veya başlangıç şablonları için genellikle .firebaserc dosyanızı kontrol etmemeniz gerekir.

Yalnızca kullanımınıza yönelik 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üleyip test edebilirsiniz. Yalnızca belirli özellikleri test etmek istiyorsanız firebase serve komutundaki bir bayrakta virgülle ayrılmış liste kullanabilirsiniz.

Aşağıdaki görevlerden birini yapmak istiyorsanız 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 yerel bir URL'de Hosting'i emüle etmek için production (dağıtılmış) HTTP işlevlerinizi kullanmak istiyorsunuz.
firebase serve --only hosting

Yerel HTTP işlevlerini kullanarak projenizi emüle etme

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

  • Yerel URL'lerde test yapmak üzere HTTP işlevlerine ve barındırmaya öykünmek 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 edin

Varsayılan olarak, firebase serve yalnızca localhost kaynağından 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 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 kod ve öğelerin Firebase projenize dağıtımını yönetir:

  • Firebase Barındırma sitelerinizin yeni sürümleri
  • Yeni, güncellenmiş veya mevcut Cloud Functions for Firebase
  • Firebase Realtime Database Kuralları
  • Firebase için Cloud Storage 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

İsteğe bağlı olarak, dağıtımlarınızın her birine yorum ekleyebilirsiniz. Bu yorum, projenizin Firebase Hosting sayfasındaki diğer dağıtım bilgileriyle birlikte gösterilir. Örnek:

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

firebase deploy komutunu kullanırken şunlara dikkat edin:

  • Proje dizininden kaynak dağıtmak için proje dizininin bir firebase.json dosyası olmalıdır. Bu dosya, firebase init komutuyla 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 yerel proje dizininizde veya Firebase konsolunda güvenlik kuralları tanımlayabilirsiniz.

Dağıtım çakışmalarını önlemek için diğer bir seçenek de kısmi dağıtım kullanmaktır ve kuralları yalnızca Firebase konsolunda tanımlayabilirsiniz.

Dağıtım kotaları

Çok düşük bir ihtimal de olsa Firebase dağıtım işlemlerinizin hızını veya hacmini sınırlandıran bir kotayı aşmanız mümkündür. Örneğin, çok sayıda işlevi 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

Bir Firebase Hosting dağıtımını, projenizin Firebase Hosting sayfasından istediğiniz sürüm için Geri Al işlemini seçerek geri alabilirsiniz.

Şu anda Firebase Realtime Database, Cloud Storage for Firebase veya Cloud Firestore'un güvenlik kurallarının sürümlerini geri çekmek 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 bayrakta 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.

İşaretleme söz dizimi Dağıtılan hizmet veya özellik
--only hosting Firebase Hosting içeriği
--only database Firebase Realtime Database kuralları
--only storage Firebase için Cloud Storage kuralları
--only firestore Yapılandırılmış tüm veritabanları için Cloud Firestore kuralları ve dizinler
--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. Örnek:

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

Diğer bir seçenek de işlevleri /functions/index.js dosyanızdaki dışa aktarma grupları halinde gruplandırmaktır. İşlevleri gruplandırma, tek bir komut kullanarak birden fazla işlevi dağıtmanıza imkan 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ı özel olarak groupB içindeki işlevleri tanımlayan ek işlevler içerir. Örnek:

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

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

Bu örnekte, proje dizininizde 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 grup içindeki belirli bir işlevi hedefleyebilirsiniz:

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

İşlevleri silme

Firebase CLI, önceden dağıtılmış 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 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 işlev grubunu siler:

    firebase functions:delete GROUP_NAME

  • Onay istemini atlar:

    firebase functions:delete FUNCTION-1_NAME --force

Dağıtım öncesi ve dağıtım sonrası komut dosyası içeren görevleri ayarlama

Önceden dağıtım veya dağıtım sonrası görevleri gerçekleştirmek için kabuk komut dosyalarını firebase deploy komutuna bağlayabilirsiniz. Örneğin, predeploy komut dosyası TypeScript kodunu JavaScript'e dönüştürebilirken bir postdeploy kancası yöneticileri Firebase Hosting'e yeni site içeriği dağıtımları konusunda bilgilendirebilir.

Predeploy veya postdeploy 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ın ardından Slack mesajı gönderen bir postdeploy 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 ş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ı oluşturabilirsiniz. firebase deploy çalıştırmanın, firebase.json dosyanızda tanımlanan tüm dağıtım öncesi ve dağıtım sonrası görevlerini 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ışlarını ve hata akışlarını terminale yazdırır. Hata durumlarında aşağıdakileri göz önünde bulundurun:

  • Ö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 postdeploy kancaları tetiklenmez.

Ortam değişkenleri

Predeploy ve postdeploy 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 fazla Realtime Database örneğini yönetme

Bir Firebase projesinin birden fazla Firebase Realtime Database örneği olabilir. CLI komutları varsayılan olarak default (varsayılan) veritabanı örneğinizle etkileşime girer.

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 KSA'nın kimliğini Firebase hesabınızla doğrular. Web tarayıcısına erişim gerektirir.
localhost erişimine izin verilmeyen uzak ortamlarda CLI'ya giriş yapmak için --no-localhost işaretini kullanın.
login:ci Etkileşimsiz ortamlarda kullanım için bir kimlik doğrulama jetonu oluşturur.
çıkış KSA'nın Firebase hesabınızdaki oturumunu kapatır.
İlgili proje kaynaklarının bulunduğu bir tarayıcı açar.
projeler:liste Erişiminiz olan tüm Firebase projelerini listeler.
kullan KSA 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:oluştur Yeni bir Google Cloud projesi oluşturur, ardından Firebase kaynaklarını yeni projeye ekler.
projeler:liste Erişiminiz olan 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:liste Etkin projedeki kayıtlı Firebase uygulamalarını listeler.
apps:sdkconfig Bir Firebase uygulamasının Google hizmetleri yapılandırmasını yazdırır.
kurulum: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.
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 Firebase Android uygulamasından belirtilen SHA sertifika karmasını 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 Barındırma sitenizi dağıtmanıza ve sitenizle etkileşime geçmenize olanak tanır.

Komut Açıklama
dağıtma Proje dizininizdeki kod ve öğeleri etkin projeye dağıtır. Firebase Hosting için firebase.json yapılandırma dosyası gerekir.
yayınla Firebase Barındırma yapılandırmanızla yerel web sunucusu başlatır. Firebase Hosting için firebase.json yapılandırma dosyası gerekir.

Uygulama Dağıtım komutları

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

Uygulama Barındırma komutları

Komut Açıklama
apphosting:backends:create \
--project PROJECT_ID
--location REGION --app APP_ID
Uygulama Barındırma arka ucundan oluşan tek bir kod tabanına bağlı yönetilen kaynakların koleksiyonunu oluşturur. İsteğe bağlı olarak, Firebase uygulama kimliğine göre mevcut bir Firebase web uygulaması belirtin.
apphosting:backends:get \ BACKEND_ID
--project PROJECT_ID
--location REGION
Bir arka ucun herkese açık URL'si de 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
Projeden bir arka ucu siler.
apphosting:secrets:set \
KEY --project PROJECT_ID
--location REGION --data-file Data file
Gizli materyalleri Secret Manager'da saklar. İsteğe bağlı olarak, gizli anahtar verilerinin okunacağı bir dosya yolu belirtin. Standart girişten gizli anahtar verilerini okumak için _ olarak ayarlayın.
apphosting:secrets:grantaccess \
KEY --project PROJECT_ID BACKEND_ID
--konum REGION
Arka uç hizmet hesabına, derleme veya çalıştırma sırasında App Hosting tarafından erişilebilmesi için, sağlanan gizli anahtara erişim izni verir.
apphosting:secrets:açıkla \
KEY --proje PROJECT_ID
Bir gizli anahtar ve sürümlerinin meta verilerini alır.
firebase apphosting:secrets:access \
KEY[@version]
--project PROJECT_ID
Gizli anahtara ve sürümüne uygun gizli anahtar değerine erişir. Varsayılan olarak en son sürüme erişilir.

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

Komut Açıklama
auth:export Etkin projenin kullanıcı hesaplarını bir JSON veya CSV dosyasına aktarır. Daha fazla bilgi için auth:import ve auth:export sayfasına bakın.
auth:içe aktarma Kullanıcı hesaplarını bir 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:konumlar

Cloud Firestore veritabanınız için kullanılabilecek konumları listeleme.

firestore:databases:create DATABASE_ID

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

Komut şu işaretleri alır:

  • --location <region name> ile veritabanının dağıtım konumunu belirtin. Kullanılabilir konumları listelemek için firebase firestore:locations komutunu çalıştırabileceğinizi unutmayın. Zorunludur.
  • --delete-protection <deleteProtectionState> parametresini kullanmanız gerekebilir. Geçerli değerler ENABLED veya DISABLED şeklindedir. Varsayılan olarak DISABLED değerine ayarlanır.
  • Belirli bir noktadan önceyi kurtarma özelliğinin etkinleştirilip etkinleştirilmediğini ayarlamak 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ı listeleme.

firestore:databases:get DATABASE_ID

Firebase projenizdeki belirli 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 gerekir. Komut şu işaretleri alır:

  • --delete-protection <deleteProtectionState> parametresini kullanmanız gerekebilir. Geçerli değerler ENABLED veya DISABLED şeklindedir. Varsayılan olarak DISABLED değerine ayarlanır.
  • Belirli bir noktadan önceyi kurtarma özelliğinin etkinleştirilip etkinleştirilmediğini ayarlamak 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:sil DATABASE_ID

Firebase projenizden bir veritabanını silin.

firestore:indexes

Firebase projenizdeki bir veritabanının dizinlerini listeleme.

Komut şu işareti alır:

  • Dizinlerin listeleneceği veritabanının adını belirtmek için --database DATABASE_ID öğesini kullanın. Sağlanmazsa varsayılan veritabanı için dizinler listelenir.
firestore:sil

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

CLI ile Cloud Firestore verilerini silerseniz okuma ve silme ücretleri alınır. Daha fazla bilgi için Cloud Firestore faturalandırmasını anlama bölümüne bakın.

Komut şu işareti alır:

  • Belgelerin silineceği veritabanının adını belirtmek için --database DATABASE_ID 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 klonlar.
functions:config:get Etkin projenin Cloud Functions işlevlerinin 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ındaki değerleri kaldırır.
functions:log Dağıtılan Cloud Functions'daki günlükleri okur.

Daha fazla bilgi için ortam yapılandırması 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 bunu belirtilen Android kaynak (XML) dosyasında belirtilen eşleme dosyası kimliğiyle ilişkilendirir.
crashlytics:simgeler:yükleme \
--app=FIREBASE_APP_ID \
PATH/TO/SYMBOLS
Android'de yerel kitaplık kilitlenmeleri için Crashlytics ile uyumlu sembol dosyası oluşturur ve bu dosyayı Firebase sunucularına yükler.

Uzantı komutları

Komut Açıklama
uzantı Firebase Extensions komutlarının nasıl kullanılacağına dair bilgileri gösterir.
Etkin projede yüklü uzantı örneklerini listeler.
ext:yapılandırma \
EXTENSION_INSTANCE_ID
Uzantı manifest'inizdeki bir uzantı örneğinin parametre değerlerini yeniden yapılandırır.
ext:bilgi \
PUBLISHER_ID/EXTENSION_ID
Uzantıyla ilgili ayrıntılı bilgileri yazdırır.
ext:yükleme \
PUBLISHER_ID/EXTENSION_ID
Uzantı manifestinize, bir uzantının yeni bir örneğini ekler.
ext:liste Bir Firebase projesinde yüklü tüm uzantı örneklerini listeler.
Her uzantının örnek kimliğini yazdırır.
ext:uninstall \
EXTENSION_INSTANCE_ID
Uzantı manifest'inizden 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:dışa aktarma Projenizden tüm yüklü uzantı örneklerini uzantı manifestinize aktarır.

Uzantı yayıncı komutları

Komut Açıklama
ext:dev:init Geçerli dizindeki yeni bir uzantı için iskelet kod tabanı başlatır.
ext:dev:list \
PUBLISHER_ID
Bir yayıncı tarafından yüklenen tüm uzantıların listesini yazdırır.
ext:dev:register Firebase projelerini uzantı yayıncı projesi olarak kaydeder.
ext:dev:desteği sonlandırılmış \
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 (1.0.0 gibi) 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 (1.0.0 gibi) veya bir sürüm aralığı (>1.0.0 gibi) olabilir.
Herhangi bir sürüm koşulu sağlanmazsa bu uzantının tüm sürümlerini kullanımdan kaldırır.
ext:dev:yükleme \
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.

Barındırma komutları

Komut Açıklama
hosting:devre dışı bırakma

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österilir.

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

Belirtilen SITE_ID adını 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 Hosting:sites:delete \
SITE_ID

Belirtilen Hosting sitesini siler

KSA, siteyi silmeden önce bir onay istemi gösterir.

(İsteğe bağlı) Şu işaretleri 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 projesi için tüm Barındırma sitelerini listeler

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

Varsayılan Hosting sitesinde, belirtilen CHANNEL_ID değerini kullanarak yeni bir önizleme kanalı oluşturur

Bu komut kanala dağıtılmaz.

firebase Hosting:channel:delete \
CHANNEL_ID

Belirtilen önizleme kanalını siler

Bir sitenin canlı kanalı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, kanala dağıtımdan önce varsayılan Hosting sitesinde kanalı oluşturur.

firebase Hosting:channel:list Tüm kanalları ("canlı" kanal dahil) varsayılan Hosting sitesinde listeler
firebase Hosting:channel:open \
CHANNEL_ID
Belirtilen kanalın URL'sini açmak için bir tarayıcı açar veya tarayıcıda açmak 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" kanalda en son dağıtılan sürümü, belirtilen "hedef" kanala klonlar

Bu komut, belirtilen "hedef" kanala da dağıtılır. "Hedef" kanal henüz mevcut değilse bu komut, kanala dağıtım yapmadan ö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 klonlar

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

VERSION_ID, Firebase konsolunun Barındırma kontrol panelinde yer alır.

Realtime Database komutları

İlk, varsayılan Realtime Database örneğinizi Firebase konsolunda veya genel firebase init iş akışını ya da 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ığı gibi yönetebilirsiniz.

Komut Açıklama
database:get Etkin projenin veritabanından verileri getirir ve JSON olarak görüntüler. Dizine eklenen verilerde sorgulamayı destekler.
database:instances:create Belirtilen ö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ını öğrenmek için projenizin konumlarını belirleme bölümüne bakın. Geçerli proje için 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 bölgedeki veritabanlarını listelemek için --location seçeneğini kabul eder. Bu seçenekle kullanılacak bölge adlarını öğrenmek için projenizin belirli konumlarını inceleyin.
database:profile Etkin projenin veritabanında 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 dosyadan, STDIN'den veya bir komut satırı bağımsız değişkeninden giriş alır.
database:kaldırma Etkin projenin veritabanında belirli bir konumdaki tüm verileri siler.
database:set Etkin projenin veritabanında belirli bir konumdaki tüm verileri değiştirir. Bir dosyadan, STDIN'den veya bir komut satırı bağımsız değişkeninden giriş alır.
database:update Etkin projenin veritabanındaki belirli bir konumda kısmi güncelleme gerçekleştirir. Bir dosyadan, STDIN'den veya bir 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 isteğe bağlı olarak, döndürülen sürümlerin sayısını sınırlamak için --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 olur) ve parametre gruplarının, parametrelerin, koşul adlarının ve sürümünün çıktılarını bir tabloya sunar. İsteğe bağlı olarak, -o, FILENAME ile çıktıyı belirtilen bir dosyaya yazabilirsiniz.
remoteconfig:rollback \
--v, version_number VERSION_NUMBER
--force
Remote Config şablonunu belirtilen bir önceki sürüm numarasına geri döndürür veya varsayılan olarak en sonraki sürüme (geçerli sürüm -1) geri döndürür. --force geçilmezse geri alma işlemine geçmeden önce E/H isteminde bulunur.