Firebase Data Connect, uçtan uca prototipleme ve sürekli entegrasyon ile sürekli dağıtım (CI/CD) akışları için yerel bir emülatör sağlar:
- 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 entegre bir 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 kurulumu ve kullanımı hızlı başlangıç kılavuzundan daha ayrıntılı bir şekilde ele alınmaktadır.
Data Connect emülatörünü yükleme
Data Connect emülatörünü kullanmak için Local Emulator Suite'ü yüklemeden önce şunları yapmanız gerekir:
- 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.Firebase 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çme
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 orada 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 ve üretim Data Connect kaynaklarıyla çalışma
Üretim kaynaklarını etkilemediğinden emin olmak istiyorsanız bir demo-
projectID ayarlayın veya daha sonraki bir bölümde açıklandığı gibi, istemci kodunuzun emülatöre bağlanacak şekilde donatıldığından emin olun.
Emülatörü başlatma
Emülatör, örneğin CI/CD iş akışları için etkileşimli olmayan bir şekilde çalışıyorsa 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
Uygulama içi yapılandırmanızı veya test sınıflarınızı, Data Connect emülatörüyle etkileşime geçecek şekilde aşağıdaki gibi 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.