Firebase Data Connect, uçtan uca prototip oluşturma, sürekli entegrasyon ve sürekli dağıtım (CI/CD) akışları için yerel bir emülatör sunar:
- Data Connect emülatörü, sorgu ve mutasyon prototipleri oluşturmanıza ve istemci kodunu tamamen yerel bir ortamda test etmenize olanak tanımak için yerel bir entegre PGLite veritabanı örneğiyle etkileşim kurar.
- Data Connect emülatörü, etkileşimli olmayan çalışmalar için de kullanılabilir. Otomatik testler çalıştırmanıza olanak tanır ve CI/CD iş akışlarıyla kullanıma uygundur. Bu, şemalarınız kararlı olduğunda ve istemci tarafı kodunu prototip haline getirmek ve test etmek istediğinizde kullanışlıdır.
Bu kılavuzda, emülatörün yüklenmesi ve kullanılması, hızlı başlangıç kılavuzundan daha ayrıntılı olarak ele alınmaktadır.
Data Connect emülatörünü yükleme
Data Connect emülatörünü kullanmak için Local Emulator Suite uygulamasını yüklemeden önce gerekenler:
- Node.js 18.0 veya sonraki bir sürüm.
Firebase CLI'yi yükleme ve proje dizinini ayarlama
Yükleme kılavuzunu izleyerek Firebase CLI'yi yükleyin. Data Connect emülatörü, hata düzeltmeleri ve yeni özelliklerle aktif olarak geliştirildiği için düzenli olarak güncelleme yapmayı unutmayın.
Henüz yapmadıysanız mevcut çalışma dizinini bir Firebase projesi olarak başlatın. Bunun için, hangi ürünlerin kullanılacağını belirtmek üzere istemleri uygulayın:
firebase init
Local Emulator Suite yapılandırmasını ayarlama veya değiştirme
Data Connect emülatörünü Firebase VS Code uzantısından başlattıysanız gerekirse emülatör sizin için yüklenir.
Local Emulator Suite CLI'yi kullanarak emülatör ile birlikte Local Emulator Suite'un seçili diğer bileşenlerini manuel olarak yükleyebilirsiniz. Bu komut, ilgilendiğiniz emülatörleri seçmenize, ilgili emülatör ikili dosyalarını indirmenize ve varsayılanlar uygun değilse emülatör bağlantı noktalarını ayarlamanıza olanak tanıyan bir yapılandırma sihirbazı başlatır.
firebase init emulators
Bir emülatör yüklendikten sonra Firebase CLI sürümünüzü güncelleyene kadar güncelleme kontrolü yapılmaz ve başka otomatik indirme işlemi gerçekleşmez.
Firebase projesi seçin
Kurulum akışında Firebase CLI, bir Firebase projesi seçmenizi veya oluşturmanızı ister. Firebase konsolunda Data Connect ile oluşturduğunuz mevcut bir projeyi seçerseniz burada seçtiğiniz yapılandırma önerilir.
Emülatörü ayarlama
Emülatörü yapılandırma
firebase init
akışını çalıştırarak emülatör kurulum seçenekleri konusunda yol gösterebilirsiniz.
Local Emulator Suite'teki diğer emülatörlerde olduğu gibi yapılandırma parametreleri yerel proje dosyalarında depolanır.
firebase.json
dosyanız, emülatör bağlantı noktası atamaları içeriyor.emulators:ui
anahtarı, Data Connect emülatörü için geçerli değildir.
Yerel kaynaklar ve üretim Data Connect kaynaklarıyla çalışın
Üretim kaynaklarını etkilememek istiyorsanız bir demo-
proje kimliği ayarlayın veya istemci kodunuzun sonraki bölümde açıklandığı gibi emülatöre bağlanacak şekilde ayarlanmasını sağlayın.
Emülatörü başlatma
Emülatör'ü etkileşimli olmayan bir şekilde (ör. CI/CD iş akışları için) çalıştırıyorsanız exec
seçeneğiyle başlatın.
firebase emulators:exec ./path/to/test-script.sh
Önceden tanımlanmış sorguları ve mutasyonları istemci koduna entegre ediyorsanız ve emülatör'ü özellikle istemcileri test etmek için kullanıyorsanız etkileşimli çalışma için start
seçeneğini kullanabilirsiniz. Emülatörü VS Code uzantısından da başlatabilirsiniz.
firebase emulators:start
Müşteri kodunuzu, emülatörle konuşacak şekilde donanımla tanıştırın
Data Connect emülatörüyle aşağıdaki şekilde etkileşim kurmak için uygulama içi yapılandırmanızı veya test sınıflarınızı ayarlayın.
JavaScript
import { initializeApp } from "firebase/app"; import { connectorConfig } from "@name-of-package"; import { connectDataConnectEmulator, getDataConnect } from 'firebase/data-connect'; // TODO: Replace the following with your app's Firebase project configuration const firebaseConfig = { //... }; const app = initializeApp(firebaseConfig); const dataConnect = getDataConnect(app, connectorConfig); connectDataConnectEmulator(dataConnect, "localhost", 9399); // Make calls from your app
Kotlin Android
val connector = MoviesConnector.instance // Connect to the emulator on "10.0.2.2:9399" connector.dataConnect.useEmulator() // (Alternatively) if you're running your emulator on non-default port: connector.dataConnect.useEmulator(port = 9999) // Make calls from your app
iOS
let connector = DataConnect.dataConnect(DefaultConnectorClient.connectorConfig) // Connect to the emulator on "127.0.0.1:9399" connector.useEmulator() // (alternatively) if you're running your emulator on non-default port: connector.useEmulator(port: 9999) // Make calls from your app
Test ve sürekli entegrasyon için emülatörü kullanma
Container mimarisine alınmış Local Emulator Suite görüntüleri çalıştırma
Local Emulator Suite'ü kapsayıcılarla birlikte tipik bir CI kurulumunda yüklemek ve yapılandırmak kolaydır.
Dikkat edilmesi gereken birkaç nokta vardır:
- Emülatör ikili dosyaları
~/.cache/firebase/emulators/
adresine yüklenir ve önbelleğe alınır. Tekrarlanan indirmeleri önlemek için bu yolu CI önbelleği yapılandırmanıza ekleyebilirsiniz. - Deponuzdan
firebase.json
dosyası yoksa hangi emülatörlerin başlatılacağını belirtmek içinemulators:start
veyaemulators:exec
komutuna bir komut satırı bağımsız değişkeni eklemeniz gerekir. Örneğin,--only dataconnect
.
Testler arasında veritabanınızı temizleme
Firebase, test ortamlarınızı çalıştırmalar arasında sıfırlamak için şunları önerir:
- Aşağıdakileri işlemek için özel mutasyonlar yazma:
- Kurulumda, yerel bir veritabanı örneğini başlangıç verileriyle doldurun.
- Sökme işleminde, test sonrası veritabanı örneğinden değiştirilmiş verileri silin.
Data Connect emülatörünün üretimden farkı
Data Connect emülatörü, sunucu tarafı ürünün birçok özelliğini simüle eder. Ancak dikkate alınması gereken bazı istisnalar vardır:
- PGLite'ın sürümü ve ayrıntılı yapılandırması, üretim Cloud SQL örneğinizin sürümünden farklı olabilir.
- Data Connect'ın pgvector ve Vertex API entegrasyonu ile geliştirme yapmak için emülatör kullanıyorsanız Cloud Vertex API'ye yapılan çağrılar Cloud SQL'ın Vertex entegrasyonu üzerinden değil, doğrudan yapılır. Ancak üretim API'sine çağrılar yapılmaya devam eder. Bu nedenle, gerçek bir Firebase projesi kullanmanız gerekir,
demo-
projesi kullanamazsınız ve Vertex API maliyetleri alınır.