Ikuti semua informasi yang diumumkan di Firebase Summit, dan pelajari bagaimana Firebase dapat membantu Anda mempercepat pengembangan aplikasi dan menjalankan aplikasi dengan percaya diri. Pelajari Lebih Lanjut

Gunakan Emulator Ekstensi untuk mengevaluasi ekstensi

Tetap teratur dengan koleksi Simpan dan kategorikan konten berdasarkan preferensi Anda.

Sebelum menggunakan emulator Ekstensi dengan aplikasi Anda, pastikan Anda memahami keseluruhan alur kerja Firebase Local Emulator Suite , dan Anda menginstal dan mengonfigurasi Local Emulator Suite dan meninjau perintah CLI -nya.

Panduan ini juga mengasumsikan bahwa Anda sudah memahami Ekstensi Firebase dan cara menggunakannya di aplikasi Firebase .

Apa yang dapat saya lakukan dengan emulator Extensions?

Dengan emulator Ekstensi, Anda dapat menginstal dan mengelola ekstensi di lingkungan lokal yang aman dan lebih memahami kemampuannya sambil meminimalkan biaya penagihan. Emulator menjalankan fungsi ekstensi Anda secara lokal, termasuk fungsi yang dipicu peristiwa latar belakang menggunakan emulator untuk Cloud Firestore, Realtime Database, Cloud Storage for Firebase, Authentication dan Pub/Sub, dan fungsi yang dipicu Eventarc yang diterapkan di Cloud Functions v2.

Pilih proyek Firebase

Firebase Local Emulator Suite mengemulasikan produk untuk satu proyek Firebase.

Untuk memilih project yang akan digunakan, sebelum Anda memulai emulator, di CLI jalankan firebase use di direktori kerja Anda. Atau, Anda dapat meneruskan flag --project ke setiap perintah emulator.

Local Emulator Suite mendukung emulasi proyek Firebase nyata dan proyek demo .

Jenis proyek Fitur Gunakan dengan emulator
Nyata

Proyek Firebase sebenarnya adalah proyek yang Anda buat dan konfigurasikan (kemungkinan besar melalui konsol Firebase).

Proyek nyata memiliki sumber daya langsung, seperti instance database, keranjang penyimpanan, fungsi, atau sumber daya lain yang Anda siapkan untuk proyek Firebase tersebut.

Saat bekerja dengan proyek Firebase nyata, Anda dapat menjalankan emulator untuk salah satu atau semua produk yang didukung.

Untuk produk apa pun yang tidak Anda tiru, aplikasi dan kode Anda akan berinteraksi dengan sumber daya langsung (instance database, keranjang penyimpanan, fungsi, dll.).

Demo

Proyek demo Firebase tidak memiliki konfigurasi Firebase nyata dan tidak memiliki sumber daya langsung. Project ini biasanya diakses melalui codelab atau tutorial lainnya.

ID Proyek untuk proyek demo memiliki awalan demo- .

Saat bekerja dengan proyek demo Firebase, aplikasi dan kode Anda hanya berinteraksi dengan emulator . Jika aplikasi Anda mencoba berinteraksi dengan sumber daya yang emulatornya tidak berjalan, kode tersebut akan gagal.

Kami menyarankan Anda menggunakan proyek demo sedapat mungkin. Manfaat meliputi:

  • Penyiapan yang lebih mudah, karena Anda dapat menjalankan emulator tanpa harus membuat proyek Firebase
  • Keamanan yang lebih kuat, karena jika kode Anda secara tidak sengaja mengaktifkan sumber daya (produksi) yang tidak ditiru, tidak ada kemungkinan perubahan data, penggunaan, dan penagihan
  • Dukungan offline yang lebih baik, karena tidak perlu mengakses internet untuk mengunduh konfigurasi SDK Anda.

Instal dan evaluasi ekstensi

Menggunakan emulator Ekstensi untuk mengevaluasi apakah suatu ekstensi memenuhi kebutuhan Anda sangatlah mudah.

Misalkan Anda tertarik dengan ekstensi Trigger Email ( firestore-send-email ), meskipun alur kerja berikut mencakup semua ekstensi. Saat dijalankan dengan emulator lokal, Trigger Email akan secara otomatis menggunakan emulator Cloud Firestore dan Cloud Functions.

Untuk mengevaluasi ekstensi secara lokal:

  1. Tambahkan ekstensi ke manifes ekstensi lokal. Manifes ekstensi adalah daftar instance ekstensi dan konfigurasinya.

    firebase ext:install --local firebase/firestore-send-email

    Menjalankan perintah di atas akan meminta Anda untuk mengonfigurasi firebase/firestore-send-email versi terbaru dan menyimpan konfigurasi ke manifes, tetapi tidak akan menerapkan konfigurasi ke proyek Anda. Untuk selengkapnya tentang ini, lihat Mengelola konfigurasi ekstensi dengan manifes

  2. Jalankan Local Emulator Suite seperti biasa.

    firebase emulators:start

Sekarang, dengan menggunakan instance ekstensi firestore-send-email tercantum dalam manifes Anda, Local Emulator Suite akan mengunduh kode sumber ekstensi tersebut ke ~/.cache/firebase/extensions . Setelah sumber diunduh, Local Emulator Suite akan dimulai dan Anda akan dapat memicu salah satu fungsi yang dipicu latar belakang ekstensi dan menghubungkan aplikasi Anda ke Local Emulator Suite untuk menguji integrasinya dengan aplikasi Anda.

Anda dapat menggunakan UI Emulator Suite untuk menambahkan data ke kumpulan dokumen email dan menyiapkan sumber daya backend lainnya, seperti yang diwajibkan oleh ekstensi Email Pemicu.

Atau, untuk lingkungan pengujian non-interaktif seperti alur kerja continuous integration, Anda dapat menulis skrip pengujian untuk mengevaluasi ekstensi yang, di antara langkah-langkah lainnya, mengisi data Cloud Firestore yang diperlukan dan memicu fungsi. Anda kemudian akan memanggil Local Emulator Suite untuk mengeksekusi skrip pengujian Anda:

firebase emulators:exec my-test.sh

Perbedaan pengujian dengan emulator Ekstensi dari produksi

Emulator ekstensi memungkinkan Anda menguji ekstensi dengan cara yang sangat cocok dengan pengalaman produksi. Namun, ada beberapa perbedaan dari perilaku produksi.

Awan IAM

Firebase Emulator Suite tidak berusaha mereplikasi atau mengikuti perilaku terkait IAM apa pun untuk dijalankan. Emulator mematuhi Aturan Keamanan Firebase yang disediakan, tetapi dalam situasi di mana IAM biasanya akan digunakan, misalnya untuk menyetel akun layanan pemanggilan Cloud Functions dan dengan demikian izin, emulator tidak dapat dikonfigurasi dan akan menggunakan akun yang tersedia secara global di mesin pengembang Anda, mirip dengan menjalankan skrip lokal secara langsung.

Batasan tipe pemicu

Saat ini, Firebase Local Emulator Suite hanya mendukung fungsi yang dipicu permintaan HTTP, pemicu peristiwa khusus Eventarc untuk ekstensi, dan fungsi yang dipicu peristiwa latar belakang untuk Cloud Firestore, Realtime Database, Cloud Storage for Firebase, Authentication, dan Pub/Sub. Untuk mengevaluasi ekstensi yang menggunakan jenis fungsi terpicu lainnya, Anda perlu memasang ekstensi di proyek pengujian Firebase.

Apa selanjutnya?