Uzantıları değerlendirmek için Uzantılar Emülatörü'nü kullanma

Uygulamanızda Extensions emülatörünü kullanmadan önce genel Firebase Local Emulator Suite iş akışını anladığınızdan ve Local Emulator Suite'i yükleyip yapılandırdığınızdan ve CLI komutlarını incelediğinizden emin olun.

Bu kılavuzda ayrıca Firebase Uzantıları ve bunları Firebase uygulamalarınızda kullanma hakkında bilgi sahibi olduğunuz varsayılır.

Uzantılar emülatörüyle ne yapabilirim?

Extensions emülatörüyle uzantıları güvenli bir yerel ortamda yükleyip yönetebilir ve faturalandırma maliyetlerini en aza indirirken özelliklerini daha iyi anlayabilirsiniz. Emülatör; Cloud Firestore emülatörleri, Realtime Database, Cloud Storage for Firebase, Authentication ve Pub/Sub ile Cloud Functions v2'de uygulanan Eventarc tarafından tetiklenen işlevler aracılığıyla arka plan etkinliği tetiklenen işlevler dahil olmak üzere uzantınızın işlevlerini yerel olarak çalıştırır.

Firebase projesi seçin

Firebase Local Emulator Suite, tek bir Firebase projesi için ürün emülasyonu yapar.

Kullanılacak projeyi seçmek için emülatörleri başlatmadan önce, çalışma dizininizde CLI'yı firebase use çalıştırın. Alternatif olarak --project işaretini her emülatör komutuna aktarabilirsiniz.

Yerel Emulator Suite, gerçek Firebase projeleri ve demo projelerinin emülasyonunu destekler.

Proje türü Özellikler Emülatörlerle kullanım
Gerçek

Gerçek bir Firebase projesi, sizin oluşturduğunuz ve yapılandırdığınız (büyük olasılıkla Firebase konsolu üzerinden) bir projedir.

Gerçek projelerde veritabanı örnekleri, depolama paketleri, işlevler veya Firebase projesi için oluşturduğunuz diğer kaynaklar gibi canlı kaynaklar bulunur.

Gerçek Firebase projeleriyle çalışırken, desteklenen ürünlerin herhangi biri veya tümü için emülatörler çalıştırabilirsiniz.

emüle etmediğiniz tüm ürünler için uygulamalarınız ve kodunuz, canlı kaynakla (veritabanı örneği, depolama paketi, işlev vb.) etkileşime girer.

Demo

Demo Firebase projesinin gerçek bir Firebase yapılandırması yoktur ve canlı kaynak yoktur. Bu projelere genellikle codelab'ler veya diğer eğiticiler aracılığıyla erişilir.

Demo projeleri için proje kimlikleri demo- önekine sahiptir.

Demo Firebase projeleriyle çalışırken uygulamalarınız ve kodunuz yalnızca emülatörlerle etkileşime girer. Uygulamanız, emülatörün çalışmadığı bir kaynakla etkileşim kurmaya çalışırsa bu kod başarısız olur.

Mümkün olan her yerde demo projeleri kullanmanızı öneririz. Sunulan avantajlar arasında şunlar sayılabilir:

  • Emülatörleri bir Firebase projesi oluşturmadan çalıştırabileceğiniz için kurulumu daha kolaydır
  • Kodunuz yanlışlıkla emüle edilmemiş (üretim) kaynakları çağırırsa veri değişikliği, kullanım ve faturalandırma söz konusu olmayacağından daha yüksek güvenlik
  • SDK yapılandırmanızı indirmek için internete erişmeniz gerekmediğinden daha iyi çevrimdışı destek.

Uzantıları yükleme ve değerlendirme

Bir uzantının ihtiyaçlarınızı karşılayıp karşılamadığını değerlendirmek için Extensions emülatörünü kullanabilirsiniz.

Aşağıdaki iş akışı tüm uzantıları kapsamasına rağmen Tetikleyici E-posta (firestore-send-email) uzantısı ile ilgilendiğinizi varsayalım. Yerel emülatörlerle çalıştırıldığında Tetikleyici E-posta Adresi otomatik olarak Cloud Firestore ve Cloud Functions emülatörlerinden yararlanır.

Bir uzantıyı yerel olarak değerlendirmek için:

  1. Uzantıyı yerel uzantılar manifest dosyasına ekleyin. Uzantı manifesti, uzantı örnekleri ve yapılandırmalarının bir listesidir.

    firebase ext:install --local firebase/firestore-send-email

    Yukarıdaki komutu çalıştırdığınızda, firebase/firestore-send-email uzantısının en son sürümünü yapılandırmanız ve yapılandırmayı manifest dosyasına kaydetmeniz istenir. Ancak, yapılandırma projenize dağıtılmaz. Bu konu hakkında daha fazla bilgi için Manifestlerle uzantı yapılandırmasını yönetme bölümüne bakın.

  2. Local Emulator Suite'i her zamanki gibi başlatın.

    firebase emulators:start

Şimdi, Local Emulator Suite manifest dosyanızda listelenen firestore-send-email uzantı örneğini kullanarak bu uzantının kaynak kodunu ~/.cache/firebase/extensions sitesine indirecek. Kaynaklar indirildikten sonra Local Emulator Suite başlar. Uzantının arka planda tetiklenen işlevlerinden herhangi birini tetikleyebilir ve uygulamanızı Local Emulator Suite'e bağlayarak uygulamanızla entegrasyonunu test edebilirsiniz.

E-posta dokümanı toplama işlemine veri eklemek ve Trigger Email uzantısının gerektirdiği diğer arka uç kaynaklarını ayarlamak için Emulator Suite kullanıcı arayüzünü kullanabilirsiniz.

Alternatif olarak, sürekli entegrasyon iş akışları gibi etkileşimli olmayan test ortamlarında, diğer adımların yanı sıra gerekli Cloud Firestore verilerini dolduran ve işlevleri tetikleyen bir test komut dosyası yazabilirsiniz. Daha sonra test komut dosyanızı yürütmek için Local Emulator Suite'i çağırırsınız:

firebase emulators:exec my-test.sh

Extensions emülatörüyle testin üretimden farkı nedir?

Uzantılar emülatörü, uzantıları üretim deneyimiyle yakından eşleşecek şekilde test etmenizi sağlar. Ancak, üretim davranışında bazı farklılıklar vardır.

Cloud IAM

Firebase Emulator Suite, IAM ile ilgili çalışma amaçlı davranışları kopyalamaya veya bunlara saygı göstermeye çalışmaz. Emülatörler, sağlanan Firebase Güvenlik Kurallarına uyar ancak IAM'nin normalde kullanılması gereken durumlarda (ör. Cloud Functions'ın hizmet hesabını çağırıp izinleri ayarlamak için kullanılır) emülatör yapılandırılamaz ve doğrudan yerel komut dosyası çalıştırmaya benzer şekilde geliştirici makinenizde küresel olarak kullanılabilen hesabı kullanır.

Tetikleme türü sınırlaması

Firebase Local Emulator Suite şu anda yalnızca HTTP isteği ile tetiklenen işlevleri, uzantılar için Eventarc özel etkinlik tetikleyicilerini ve Cloud Firestore, Realtime Database, Cloud Storage for Firebase, Authentication ve Pub/Sub için arka plan etkinliği tetiklenen işlevleri desteklemektedir. Diğer tetiklenen işlev türlerini kullanan uzantıları değerlendirmek için bir test Firebase projesine uzantınızı yüklemeniz gerekir.

Sonrasında ne olacak?