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.
ziyaret edin.
'nı inceleyin.

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 hiyerarşisindeki düğümlerde yapılan değişiklikleri işler, düğümün original özelliğinin içeriğini şuna dönüştürür: büyük harfle yazar ve sonucu söz konusu düğümün uppercase etiketinde depolar
  2.   const functions = require('firebase-functions/v1');
    
      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);
          });
      
  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 Realtime Database emülatörleri çalışır.
    . Resmim
  5. Kullanıcı arayüzünün Realtime Database sekmesinde, messages düğümüne sahip bir düğüm kümesi oluşturmaya yönelik düzenleyici kontrolleri bir message1 düğüm içerir, sırasıyla şuna sahip bir düğüm içerir: anahtar original olarak ve değer test olarak ayarlandı. Bu Cloud Functions işlevimizi tetikler. Yeni bir uppercase özelliği TEST değeriyle kısa süre içinde görünür.
    . Resmim Resmim
  6. İşlevinizin inot hataları çalıştırmadığı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 test sınıflarınızı veya uygulama içi yapılandırmanızı Realtime Database emülatörüne yönlendirin.

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);
Swift
    // 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

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

var db = firebase.database();
if (location.hostname === "localhost") {
  // Point to the RTDB emulator running on localhost.
  db.useEmulator("127.0.0.1", 9000);
} 

Ö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"

Her bir emülatörü daha ayrıntılı şekilde 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: