了解 2023 年 Google I/O 大会上介绍的 Firebase 亮点。了解详情

Uzantıları değerlendirmek için Uzantı Öykünücüsünü kullanın

Uzantı öykünücüsünü uygulamanızla birlikte kullanmadan önce, genel Firebase Local Emulator Suite iş akışını anladığınızdan ve Local Emulator Suite'i kurup yapılandırdığınızdan ve CLI komutlarını gözden geçirdiğinizden emin olun.

Bu kılavuz aynı zamanda Firebase Uzantılarına ve bunları Firebase uygulamalarınızda nasıl kullanacağınıza aşina olduğunuzu varsayar.

Uzantı emülatörü ile ne yapabilirim?

Uzantılar öykünücüsüyle, uzantıları güvenli bir yerel ortamda yükleyip yönetebilir ve fatura maliyetlerini en aza indirirken yeteneklerini daha iyi anlayabilirsiniz. Öykünücü, Cloud Firestore, Gerçek Zamanlı Veritabanı, Firebase için Bulut Depolama, Kimlik Doğrulama ve Pub/Sub öykünücülerini kullanan arka plan olayla tetiklenen işlevler ve Cloud Functions v2'de uygulanan Eventarc ile tetiklenen işlevler dahil olmak üzere uzantınızın işlevlerini yerel olarak çalıştırır.

Bir Firebase projesi seçin

Firebase Local Emulator Suite, ürünleri tek bir Firebase projesi için taklit eder.

Kullanılacak projeyi seçmek için, öykünücüleri başlatmadan önce, CLI'da çalışma dizininizdeki firebase use . Veya --project bayrağını her emülatör komutuna iletebilirsiniz.

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

Proje tipi Özellikler Emülatörlerle kullanın
Gerçek

Gerçek bir Firebase projesi sizin oluşturup yapılandırdığınız projedir (büyük olasılıkla Firebase konsolu aracılığıyla).

Gerçek projeler, veritabanı örnekleri, depolama grupları, işlevler veya o Firebase projesi için ayarladığınız diğer kaynaklar gibi canlı kaynaklara sahiptir.

Gerçek Firebase projeleriyle çalışırken, desteklenen ürünlerin herhangi biri veya tümü için öykünücüler çalıştırabilirsiniz.

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

Demo

Bir demo Firebase projesinde gerçek bir Firebase yapılandırması ve canlı kaynak yoktur. Bu projelere genellikle kod laboratuvarları veya diğer öğreticiler aracılığıyla erişilir.

Demo projeleri için proje kimliklerinde demo- öneki bulunur.

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

Mümkün olan her yerde demo projeleri kullanmanızı öneririz. Avantajlar şunları içerir:

  • Bir Firebase projesi oluşturmadan öykünücüleri çalıştırabileceğiniz için daha kolay kurulum
  • Daha güçlü güvenlik, çünkü kodunuz yanlışlıkla öykünülmemiş (üretim) kaynakları çalıştırırsa veri değişikliği, kullanım ve faturalandırma şansı olmaz
  • SDK yapılandırmanızı indirmek için internete erişmeniz gerekmediğinden daha iyi çevrimdışı destek.

Bir uzantı yükleyin ve değerlendirin

Bir uzantının ihtiyaçlarınızı karşılayıp karşılamadığını değerlendirmek için Uzantılar öykünücüsünü kullanmak basittir.

Aşağıdaki iş akışı tüm uzantıları kapsasa da, Trigger Email ( firestore-send-email ) uzantısıyla ilgilendiğinizi varsayalım. Trigger Email, yerel öykünücülerle çalıştırıldığında otomatik olarak Cloud Firestore ve Cloud Functions öykünücülerini kullanır.

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

  1. Uzantıyı yerel uzantılar bildirimine ekleyin. Bir uzantı bildirimi, uzantı örneklerinin ve bunların yapılandırmalarının bir listesidir.

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

    Yukarıdaki komutu çalıştırmak, sizden firebase/firestore-send-email uzantısının en son sürümünü yapılandırmanızı ve yapılandırmayı bildirime kaydetmenizi isteyecektir, ancak yapılandırmayı projenize dağıtmayacaktır. Bununla ilgili daha fazla bilgi için Bildirimlerle uzantı yapılandırmasını yönetme bölümüne bakın.

  2. Local Emulator Suite'i normalde yaptığınız gibi başlatın.

    firebase emulators:start

Şimdi, bildiriminizde listelenen firestore-send-email uzantısı örneğini kullanarak Local Emulator Suite, bu uzantının kaynak kodunu ~/.cache/firebase/extensions konumuna indirecek. Kaynaklar indirildikten sonra Local Emulator Suite başlayacak ve uzantının arka planda tetiklenen işlevlerinden herhangi birini tetikleyebilecek ve uygulamanızla entegrasyonlarını test etmek için uygulamanızı Local Emulator Suite'e bağlayabileceksiniz.

E-posta belgeleri koleksiyonuna veri eklemek ve Trigger Email uzantısının gerektirdiği şekilde diğer arka uç kaynaklarını ayarlamak için Emulator Suite UI'yi kullanabilirsiniz.

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

firebase emulators:exec my-test.sh

Uzantı öykünücüsüyle test etmenin üretimden farkı nedir?

Uzantılar öykünücüsü, uzantıları üretim deneyimiyle yakından eşleşecek şekilde test etmenize olanak tanır. Ancak, üretim davranışından bazı farklılıklar vardır.

Bulut IAM'si

Firebase Emulator Suite, çalıştırmak için IAM ile ilgili herhangi bir davranışı kopyalamaya veya bunlara uymaya çalışmaz. Öykünücüler, sağlanan Firebase Güvenlik Kurallarına uyar, ancak örneğin, hizmet hesabını ve dolayısıyla izinleri çağıran Bulut İşlevlerini ayarlamak için IAM'nin normalde kullanılacağı durumlarda, öykünücü yapılandırılamaz ve geliştirici makinenizde küresel olarak kullanılabilen hesabı kullanır. doğrudan yerel bir betiği çalıştırmaya benzer.

Tetikleme türü sınırlaması

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

Sırada ne var?