Firebase Data Connect menyediakan emulator lokal untuk pembuatan prototipe end-to-end serta alur continuous integration dan continuous deployment (CI/CD):
- Emulator Data Connect berinteraksi dengan instance database PGLite terintegrasi lokal untuk memungkinkan Anda membuat prototipe kueri dan mutasi serta menguji kode klien di lingkungan yang sepenuhnya lokal.
- Emulator Data Connect juga dapat digunakan untuk pekerjaan non-interaktif. Dengan alat ini, Anda dapat menjalankan pengujian otomatis dan cocok untuk digunakan dengan alur kerja CI/CD. Hal ini berguna saat skema Anda stabil dan Anda ingin membuat prototipe dan menguji kode sisi klien.
Panduan ini membahas penginstalan dan penggunaan emulator secara lebih mendetail daripada panduan memulai cepat.
Menginstal emulator Data Connect
Sebelum menginstal Local Emulator Suite untuk menggunakan emulator Data Connect, Anda memerlukan:
- Node.js versi 18.0 atau yang lebih tinggi.
Instal Firebase CLI dan siapkan direktori project
Instal Firebase CLI, dengan mengikuti panduan penginstalan. Pastikan untuk melakukan update secara rutin, karena emulator Data Connect sedang dalam pengembangan aktif dengan perbaikan bug dan fitur baru.
Jika Anda belum melakukannya, inisialisasi direktori kerja saat ini sebagai project Firebase, dengan mengikuti petunjuk untuk menentukan produk yang akan digunakan:
firebase init
Menetapkan atau mengubah konfigurasi Local Emulator Suite
Jika Anda memulai emulator Data Connect dari ekstensi Firebase VS Code, emulator akan diinstal untuk Anda, jika diperlukan.
Anda dapat menggunakan Firebase CLI untuk menginstal emulator secara manual bersama dengan komponen Local Emulator Suite lainnya yang dipilih. Perintah ini akan memulai wizard konfigurasi sehingga Anda dapat memilih emulator yang diminati, mendownload file biner yang sesuai dengan emulator tersebut, dan menetapkan port emulator jika port default tidak sesuai.
firebase init emulators
Setelah emulator diinstal, tidak akan ada pemeriksaan update dan download otomatis tambahan yang dilakukan sebelum Anda mengupdate versi Firebase CLI.
Memilih project Firebase
Dalam alur penyiapan, Firebase CLI akan meminta Anda memilih atau membuat project Firebase. Jika Anda memilih project yang sudah ada yang telah disiapkan dengan Data Connect di konsol Firebase, konfigurasi yang Anda pilih di sana akan disarankan.
Menyiapkan emulator
Mengonfigurasi emulator
Menjalankan alur firebase init
akan memandu Anda melalui opsi penyiapan emulator.
Seperti emulator lain di Local Emulator Suite, parameter konfigurasi
disimpan dalam file project lokal.
- File
firebase.json
Anda berisi penetapan port emulator.- Kunci
emulators:ui
tidak berlaku untuk emulator Data Connect.
- Kunci
Bekerja dengan resource Data Connect lokal dan produksi
Jika Anda ingin memastikan tidak memengaruhi resource produksi, tetapkan demo-
projectID atau pastikan kode klien Anda diinstrumentasikan untuk terhubung ke
emulator, seperti yang dibahas di bagian selanjutnya.
Memulai emulator
Jika Anda menjalankan emulator secara non-interaktif, misalnya untuk alur kerja CI/CD, mulai dengan opsi exec
.
firebase emulators:exec ./path/to/test-script.sh
Jika Anda mengintegrasikan kueri dan mutasi yang telah ditentukan sebelumnya dalam kode klien dan menggunakan emulator khusus untuk menguji klien, Anda dapat menggunakan opsi start
untuk pekerjaan interaktif. Anda juga dapat memulai emulator dari ekstensi VS Code.
firebase emulators:start
Melengkapi kode klien untuk berkomunikasi dengan emulator
Siapkan konfigurasi dalam aplikasi atau class pengujian untuk berinteraksi dengan emulator Data Connect seperti berikut.
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
Android Kotlin
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
Menggunakan emulator untuk pengujian dan continuous integration
Menjalankan image Local Emulator Suite dalam container
Penginstalan dan konfigurasi Local Emulator Suite dengan container dalam penyiapan CI biasa sangat mudah dilakukan.
Ada beberapa hal yang perlu diperhatikan:
- Biner emulator diinstal dan di-cache di
~/.cache/firebase/emulators/
. Anda dapat menambahkan jalur ini ke konfigurasi cache CI Anda untuk menghindari download berulang. - Jika tidak memiliki file
firebase.json
di repositori, Anda harus menambahkan argumen command line ke perintahemulators:start
atauemulators:exec
untuk menentukan emulator yang harus dimulai. Contoh,--only dataconnect
.
Mengosongkan database di antara pengujian
Untuk mereset lingkungan pengujian di antara pengujian, Firebase merekomendasikan:
- Menulis mutasi khusus untuk menangani hal berikut:
- Saat penyiapan, isi instance database lokal dengan data awal.
- Saat penonaktifan, hapus data yang dimodifikasi dari instance database pasca-pengujian.
Perbedaan emulator Data Connect dengan produksi
Emulator Data Connect menyimulasikan banyak fitur produk sisi server. Namun, ada beberapa pengecualian yang perlu diketahui:
- Versi dan konfigurasi mendetail PGLite mungkin berbeda dengan versi instance Cloud SQL produksi Anda.
- Jika Anda menggunakan emulator untuk mengembangkan dengan integrasi pgvector dan Vertex API Data Connect, panggilan ke Cloud Vertex API dilakukan secara langsung, bukan melalui integrasi Vertex Cloud SQL. Namun, panggilan ke API produksi masih dilakukan, yang berarti Anda harus menggunakan project Firebase yang sebenarnya, tidak dapat menggunakan project
demo-
, dan biaya Vertex API akan dikenakan.