Uygulamanızı bağlayıp prototip oluşturmaya başlayın

Firebase Local Emulator Suite kullanmaya başlamadan önce kurma, geliştirme ortamınızı ayarlama ve test Platformunuz için Firebase konuları: Apple, Android veya Web.

Prototip oluşturun ve test edin

Local Emulator Suite, aşağıda açıklandığı gibi çeşitli ürün emülatörleri içerir: Firebase Local Emulator Suite tanıtımı. Tek tek emülatörlerin yanı sıra çeşitli kombinasyonları kullanarak prototip oluşturabilir ve test edebilirsiniz. emülatörleri, kullandığınız Firebase ürünlerine karşılık gelecek şekilde emin olabilirsiniz.

Firebase veritabanı ile işlev emülatörleri arasındaki etkileşim
Cloud Functions tam Local Emulator Suite.

Bu konuda, Local Emulator Suite iş akışını tanıtmak için Firebase'in tipik bir ürün kombinasyonunu kullanan veritabanı ve bulut işlevleri tarafından tetiklenir.

Firebase projenizi yerel olarak başlattıktan sonra, Local Emulator Suite uygulamasında genellikle üç adım bulunur:

  1. Prototip özellikleri, emülatörler ve Emulator Suite UI ile etkileşimli olarak oluşturulur.

  2. Veritabanı emülatörü veya Cloud Functions emülatörü kullanıyorsanız uygulamanızı emülatörlere bağlamak için tek seferlik bir adım tamamlayın.

  3. Emülatörler ve özel komut dosyalarıyla testlerinizi otomatikleştirin.

Bir Firebase projesini yerel olarak başlatma

KSA'yı yüklediğinizden veya en son sürümüne güncelleyin.

curl -sL firebase.tools | bash

Henüz yapmadıysanız mevcut çalışma dizinini Ekrandaki bilgi istemlerini uygulayarak Firebase projesinin Cloud Functions ve Cloud Firestore ya da Realtime Database:

firebase init

Proje dizininiz artık Firebase yapılandırma dosyalarını içerir. Veritabanı için Firebase Security Rules tanım dosyası, bir functions dizini Cloud Functions kodunu ve diğer destekleyici dosyaları içerir.

Etkileşimli olarak prototip oluşturun

Local Emulator Suite, yeni özelliklerin prototipini hızlıca oluşturmanıza olanak tanıyacak şekilde tasarlanmıştır. Suite'in yerleşik kullanıcı arayüzü, Google'ın en yararlı prototip oluşturma araçlar. Bu işlem Firebase konsolunun yerel olarak çalıştırılmasına benzer.

Emulator Suite UI kullanarak veritabanının tasarımını tekrarlayabilir, Cloud Functions işlevlerini içeren farklı veri akışlarını, Güvenlik Kuralları değişikliklerini değerlendirme arka uç hizmetlerinizin nasıl performans gösterdiğini doğrulamak ve daha fazlası için günlükleri kontrol edin. Ardından, veritabanınızı temizleyip yeni bir başlangıç yapın. bir fikirle ortaya çıktı.

Bu özelliklerin tamamı, Local Emulator Suite özelliğini şu şekilde başlattığınızda kullanılabilir:

firebase emulators:start

Varsayımsal uygulamamızın prototipini oluşturmak için temel bir Cloud Functions işlevi oluşturup test edelim. bir veritabanındaki metin girişlerini değiştirmeye ve hem bu veritabanını oluşturup hem de doldurmaya Emulator Suite UI içinde tetikleyin.

  1. Veritabanı yazma işlemleriyle tetiklenen bir Cloud Functions işlevi oluşturmak için functions/index.js dosyası, proje dizininizde yer alır. . Bu işlev messages koleksiyonundaki dokümanlarda yapılan değişiklikleri dinler, bir dokümanın original alanının içeriğini şuna dönüştürür: büyük harfle yazar ve sonucu ilgili dokümanın uppercase girin.
  2.   const functions = require('firebase-functions');
    
      exports.makeUppercase = functions.firestore.document('/messages/{documentId}')
          .onCreate((snap, context) => {
            const original = snap.data().original;
            console.log('Uppercasing', context.params.documentId, original);
            const uppercase = original.toUpperCase();
            return snap.ref.set({uppercase}, {merge: true});
          });
      
  3. Local Emulator Suite uygulamasını şununla başlatın: firebase emulators:start. Cloud Functions ve veritabanı emülatörler başlatılır ve birlikte çalışacak şekilde otomatik olarak yapılandırılır.
  4. Kullanıcı arayüzünü tarayıcınızda görüntüleyin: http://localhost:4000. 4000 numaralı bağlantı noktası, kullanıcı arayüzü için varsayılan bağlantı noktasıdır ancak terminal mesajları çıkışını Firebase KSA. Kullanılabilir emülatörlerin durumunu not edin. Bizim örneğimizde Cloud Functions ve Cloud Firestore emülatörleri çalışır.
    Resmim
  5. Kullanıcı arayüzünde, Firestore > Veri sekmesinde Toplama işlemini başlatın ve Alan adı original ve değere sahip messages koleksiyonu test. Bu, bulut işlevimizi tetikler. Yeni bir uppercase alanı, dizeyle doldurulmuş olarak kısa süre içinde görünür. "TEST".
    Resmim Resmim
  6. Firestore > İstekler sekmesinde, yapılan Firebase Security Rules değerlendirmenin tamamı dahil olmak üzere, kapsamında değerlendirilecektir.
  7. İşlevinizde hata olmadığını onaylamak için Günlükler sekmesini kontrol edin. yeniden yüklemeniz gerekir.

Cloud Functions işlevleri ve etkileşimli kullanımlar arasında kolayca iterasyon yapabilirsiniz. istediğiniz veri akışını elde edinceye kadar, veri tabanında düzenleme yapmaya uygulama içi veritabanı erişim kodu, test paketlerini yeniden derleme ve çalıştırma.

Uygulamanızı emülatörlere bağlama

Etkileşimli prototip oluşturmada iyi bir ilerleme kaydettiğinizi ve bir tasarım oluşturduktan sonra şu bağlantıyı kullanarak uygulamanıza veritabanı erişim kodu uygun SDK'yı kullanabilirsiniz. Veritabanı sekmesini ve işlevler için Uygulamanızın davranışını onaylamak için Emulator Suite UI uygulamasındaki Günlükler sekmesi emin olun.

Local Emulator Suite öğesinin bir yerel geliştirme aracı olduğunu unutmayın. Yazma işlemleri prototipini oluşturduğunuz fonksiyonları tetiklemez yerel olarak.

Uygulamanızın veritabanına yazma yapmasına geçiş yapmak için için test sınıflarınızı veya uygulama içi yapılandırmanızı Cloud Firestore emülatörü kullanın.

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 firestore = Firebase.firestore
firestore.useEmulator("10.0.2.2", 8080)

firestore.firestoreSettings = firestoreSettings {
    isPersistenceEnabled = false
}
Java
// 10.0.2.2 is the special IP address to connect to the 'localhost' of
// the host computer from an Android emulator.
FirebaseFirestore firestore = FirebaseFirestore.getInstance();
firestore.useEmulator("10.0.2.2", 8080);

FirebaseFirestoreSettings settings = new FirebaseFirestoreSettings.Builder()
        .setPersistenceEnabled(false)
        .build();
firestore.setFirestoreSettings(settings);
Swift
let settings = Firestore.firestore().settings
settings.host = "127.0.0.1:8080"
settings.cacheSettings = MemoryCacheSettings()
settings.isSSLEnabled = false
Firestore.firestore().settings = settings

Web

import { getFirestore, connectFirestoreEmulator } from "firebase/firestore";

// firebaseApps previously initialized using initializeApp()
const db = getFirestore();
connectFirestoreEmulator(db, '127.0.0.1', 8080);

Web

// Firebase previously initialized using firebase.initializeApp().
var db = firebase.firestore();
if (location.hostname === "localhost") {
  db.useEmulator("127.0.0.1", 8080);
}

Özel komut dosyalarıyla testlerinizi otomatikleştirin

Şimdi sıra, genel iş akışı adımına geçelim. Özelliğinizin prototipini oluşturduktan sonra tüm platformlarda umut vadettiğini görebilirsiniz. Bunun için Ürün Sahibi sorumludur. Birim testi ve CI iş akışları için komut dosyası tabanlı testler çalıştırabilir, emülatörleri kapatabilir ve exec komutu:

firebase emulators:exec "./testdir/test.sh"

Bağımsız emülatörleri daha derinlemesine keşfedin

Temel istemci tarafı iş akışının nasıl olduğuna dair bilgi aldığınıza göre Suite'teki bağımsız emülatörlerle ilgili, uygulama geliştirmede kullanmak için:

Sonrasında ne olacak?

Yukarıda bağlantısı verilen belirli emülatörlerle ilgili konuları okuduğunuzdan emin olun. Ardından: