Firebase Local Emulator Suite'e geçmeden önce, bir Firebase projesi oluşturduğunuzdan, geliştirme ortamınızı kurduğunuzdan ve platformunuz için Firebase SDK'larını, platformunuz için Firebase ile çalışmaya başlayın konularına göre seçip yüklediğinizden emin olun: Apple , Android veya Web .
Prototip ve test
Local Emulator Suite, Firebase Local Emulator Suite'e Giriş bölümünde açıklandığı gibi birkaç ürün emülatörü içerir. Üretimde hangi Firebase ürünlerini kullandığınıza bağlı olarak, uygun gördüğünüz şekilde, tek tek emülatörlerin yanı sıra emülatör kombinasyonlarıyla prototip oluşturabilir ve test edebilirsiniz.

Bu konuda, Local Emulator Suite iş akışını tanıtmak için, tipik bir ürün kombinasyonu kullanan bir uygulama üzerinde çalıştığınızı varsayalım: bir Firebase veritabanı ve bu veritabanındaki işlemler tarafından tetiklenen bulut işlevleri.
Firebase projenizi yerel olarak başlattıktan sonra, Local Emulator Suite kullanan geliştirme döngüsü genellikle üç adımdan oluşur:
Prototip özellikleri emülatörler ve Emulator Suite UI ile etkileşimli olarak.
Bir veritabanı öykünücüsü veya Cloud Functions öykünücüsü kullanıyorsanız, uygulamanızı öykünücülere bağlamak için tek seferlik bir adım gerçekleştirin.
Öykünücüler ve özel betiklerle testlerinizi otomatikleştirin.
Bir Firebase projesini yerel olarak başlat
CLI'yi kurduğunuzdan veya en son sürümüne güncellediğinizden emin olun.
curl -sL firebase.tools | bash
Henüz yapmadıysanız, Cloud Functions ve Cloud Firestore veya Realtime Database kullandığınızı belirtmek için ekrandaki komutları izleyerek geçerli çalışma dizinini bir Firebase projesi olarak başlatın:
firebase init
Proje dizininiz artık Firebase yapılandırma dosyalarını, veritabanı için bir Firebase Güvenlik Kuralları tanım dosyasını, bulut işlevleri kodunu içeren bir functions
dizini ve diğer destekleyici dosyaları içerecektir.
etkileşimli prototip
Local Emulator Suite, yeni özellikleri hızlı bir şekilde prototiplemenizi sağlamak için tasarlanmıştır ve Suite'in yerleşik kullanıcı arabirimi, en kullanışlı prototip oluşturma araçlarından biridir. Bu biraz Firebase konsolunun yerel olarak çalışmasına benzer.
Emulator Suite UI'yi kullanarak bir veritabanı tasarımını yineleyebilir, bulut işlevlerini içeren farklı veri akışlarını deneyebilir, Güvenlik Kuralları değişikliklerini değerlendirebilir, arka uç hizmetlerinizin nasıl performans gösterdiğini doğrulamak için günlükleri kontrol edebilir ve daha fazlasını yapabilirsiniz. Ardından, baştan başlamak istiyorsanız, veritabanınızı temizleyin ve yeni bir tasarım fikriyle baştan başlayın.
Local Emulator Suite'i aşağıdakilerle başlattığınızda tümü kullanılabilir:
firebase emulators:start
Varsayımsal uygulamamızın prototipini oluşturmak için, bir veritabanındaki metin girişlerini değiştirmek üzere temel bir bulut işlevi kurup test edelim ve tetiklemek için bu veritabanını Emulator Suite kullanıcı arabiriminde hem oluşturup hem de dolduralım.
- Proje dizininizdeki
functions/index.js
dosyasını düzenleyerek veritabanı yazma işlemleriyle tetiklenen bir bulut işlevi oluşturun. Mevcut dosyanın içeriğini aşağıdaki parçacığı ile değiştirin. Bu işlev,messages
hiyerarşisindeki düğümlerdeki değişiklikleri dinler, düğümünoriginal
özelliğinin içeriğini büyük harfe dönüştürür ve sonucu o düğümünuppercase
özelliğinde saklar. - Local Emulator Suite'i
firebase emulators:start
ile başlatın. Bulut İşlevleri ve veritabanı öykünücüleri, birlikte çalışacak şekilde otomatik olarak yapılandırılarak başlatılır. - Kullanıcı arabirimini tarayıcınızda
http://localhost:4000
adresinde görüntüleyin. Bağlantı noktası 4000, kullanıcı arabirimi için varsayılandır, ancak Firebase CLI tarafından çıkan terminal mesajlarını kontrol edin. Mevcut emülatörlerin durumunu not edin. Bizim durumumuzda, Bulut İşlevleri ve Gerçek Zamanlı Veritabanı öykünücüleri çalışıyor olacak.
- Kullanıcı arayüzünde, Gerçek Zamanlı Veritabanı sekmesinde, bir
messages
düğümü içeren birmessage1
düğümüyle bir dizi düğüm oluşturmak için veritabanı içerik düzenleyicisi denetimlerini kullanın; bu düğüm, sırayla anahtarıoriginal
olarak ayarlanmış ve değeritest
olarak ayarlanmış bir düğüm içerir. Bu, bulut işlevimizi tetikler. Kısa bir süre sonraTEST
değerine sahip yeni biruppercase
özelliğinin göründüğünü gözlemleyin.
- Veritabanını güncellerken işlevinizin hata yapmadığını doğrulamak için Günlükler sekmesini kontrol edin.
const functions = require('firebase-functions'); exports.makeUppercase = functions.database.ref('/messages/{pushId}/original') .onCreate((snapshot, context) => { const original = snapshot.val(); console.log('Uppercasing', context.params.pushId, original); const uppercase = original.toUpperCase(); return snapshot.ref.parent.child('uppercase').set(uppercase); });
Uygulama içi veritabanı erişim koduna dokunmadan, test paketlerini yeniden derlemeden ve yeniden çalıştırmadan, aradığınız veri akışını elde edene kadar bulut işlev kodunuz ile etkileşimli veritabanı düzenlemeleriniz arasında kolayca geçiş yapabilirsiniz.
Uygulamanızı öykünücülere bağlayın
Etkileşimli prototip oluşturma konusunda iyi bir ilerleme kaydettikten ve bir tasarımda karar kıldığınızda, uygun SDK'yı kullanarak uygulamanıza veritabanı erişim kodu eklemeye hazır olacaksınız. Uygulamanızın davranışının doğru olduğunu doğrulamak için veritabanı sekmesini ve işlevler için Emulator Suite kullanıcı arayüzündeki Günlükler sekmesini kullanmaya devam edeceksiniz.
Local Emulator Suite'in yerel bir geliştirme aracı olduğunu unutmayın. Üretim veritabanlarınıza yazma işlemleri, yerel olarak prototipini oluşturduğunuz işlevleri tetiklemez.
Uygulamanızın veritabanına yazma yapmasına geçiş yapmak için test sınıflarınızı veya uygulama içi yapılandırmanızı Realtime Database öykünücüsüne yönlendirmeniz gerekir.
Kotlin+KTX
// 10.0.2.2 is the special IP address to connect to the 'localhost' of // the host computer from an Android emulator. val database = Firebase.database database.useEmulator("10.0.2.2", 9000)
Java
// 10.0.2.2 is the special IP address to connect to the 'localhost' of // the host computer from an Android emulator. FirebaseDatabase database = FirebaseDatabase.getInstance(); database.useEmulator("10.0.2.2", 9000);
Süratli
// In almost all cases the ns (namespace) is your project ID. let db = Database.database(url:"http://127.0.0.1:9000?ns=YOUR_DATABASE_NAMESPACE")
Web modular API
import { getDatabase, connectDatabaseEmulator } from "firebase/database"; const db = getDatabase(); if (location.hostname === "localhost") { // Point to the RTDB emulator running on localhost. connectDatabaseEmulator(db, "127.0.0.1", 9000); }
Web namespaced API
var db = firebase.database(); if (location.hostname === "localhost") { // Point to the RTDB emulator running on localhost. db.useEmulator("127.0.0.1", 9000); }
Testlerinizi özel betiklerle otomatikleştirin
Şimdi son genel iş akışı adımına geçelim. Özelliğinizin prototipini uygulama içinde oluşturduktan ve tüm platformlarınızda umut verici göründüğünde, son uygulamaya ve teste dönebilirsiniz. Birim testi ve CI iş akışları için, exec
komutuyla tek bir çağrıda öykünücüleri başlatabilir, komut dizili testleri çalıştırabilir ve öykünücüleri kapatabilirsiniz:
firebase emulators:exec "./testdir/test.sh"
Bireysel öykünücüleri daha derinlemesine keşfedin
Artık temel istemci tarafı iş akışının nasıl göründüğünü gördüğünüze göre, bunların sunucu tarafı uygulama geliştirme için nasıl kullanılacağı da dahil olmak üzere Suite'teki bağımsız öykünücüler hakkındaki ayrıntılarla devam edebilirsiniz:
- Kimlik Doğrulama öykünücüsünü prototip oluşturma iş akışlarınıza ekleyin
- Gerçek Zamanlı Veritabanı öykünücüsü özellikleri hakkında derinlemesine bilgi edinin
- Firebase emülatör özellikleri için Cloud Storage hakkında derinlemesine bilgi edinin
- Cloud Firestore öykünücü özellikleri hakkında derinlemesine bilgi edinin
- Uygulamanızı Cloud Functions öykünücüsüne bağlayın
- Uzantılar emülatörüyle faturalandırma maliyetlerini en aza indirirken Firebase Uzantılarını değerlendirin
Sırada ne var?
Yukarıda bağlantısı verilen belirli emülatörlerle ilgili konuları okuduğunuzdan emin olun. Daha sonra:
- Seçilmiş bir dizi video ve ayrıntılı nasıl yapılır örnekleri için Firebase Emülatörleri Eğitim Oynatma Listesi'ni izleyin.
- Güvenlik Kuralları testi ve Firebase Test SDK: Test Security Rules (Cloud Firestore) , Test Security Rules (Realtime Database) ve Test Security Rules (Cloud Storage for Firebase) içeren gelişmiş kullanım durumlarını araştırın.