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

Hubungkan aplikasi Anda dan mulai membuat prototipe

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

Sebelum Anda masuk dengan Firebase Local Emulator Suite, pastikan Anda telah membuat proyek Firebase, menyiapkan lingkungan pengembangan, dan memilih serta menginstal Firebase SDK untuk platform Anda sesuai dengan topik Memulai dengan Firebase untuk platform Anda: Apple , Android atau Web .

Prototipe dan uji

Local Emulator Suite berisi beberapa emulator produk, seperti yang dijelaskan dalam Pengantar Firebase Local Emulator Suite . Anda dapat membuat prototipe dan menguji dengan masing-masing emulator serta kombinasi emulator, sesuai keinginan Anda, sesuai dengan produk Firebase mana yang Anda gunakan dalam produksi.

Interaksi antara database Firebase dan emulator fungsi
Database dan emulator Cloud Functions sebagai bagian dari Local Emulator Suite lengkap .

Untuk topik ini, untuk memperkenalkan alur kerja Local Emulator Suite, anggap saja Anda sedang mengerjakan aplikasi yang menggunakan kombinasi produk yang umum: database Firebase dan fungsi cloud yang dipicu oleh operasi pada database tersebut.

Setelah Anda melakukan inisialisasi proyek Firebase secara lokal, siklus pengembangan menggunakan Local Emulator Suite biasanya memiliki tiga langkah:

  1. Fitur prototipe secara interaktif dengan emulator dan UI Emulator Suite.

  2. Jika Anda menggunakan emulator database atau emulator Cloud Functions, lakukan langkah satu kali untuk menghubungkan aplikasi Anda ke emulator.

  3. Otomatiskan pengujian Anda dengan emulator dan skrip khusus.

Inisialisasi proyek Firebase secara lokal

Pastikan Anda menginstal CLI atau memperbarui ke versi terbarunya .

curl -sL firebase.tools | bash

Jika Anda belum melakukannya, inisialisasi direktori kerja saat ini sebagai project Firebase, dengan mengikuti petunjuk di layar untuk menentukan bahwa Anda menggunakan Cloud Functions dan Cloud Firestore atau Realtime Database :

firebase init

Direktori proyek Anda sekarang akan berisi file konfigurasi Firebase, file definisi Aturan Keamanan Firebase untuk database, direktori functions yang berisi kode fungsi cloud, dan file pendukung lainnya.

Prototipe secara interaktif

Local Emulator Suite dirancang untuk memungkinkan Anda membuat prototipe fitur baru dengan cepat, dan antarmuka pengguna bawaan Suite adalah salah satu alat pembuatan prototipe yang paling berguna. Ini seperti menjalankan konsol Firebase secara lokal.

Menggunakan Emulator Suite UI, Anda dapat mengulangi desain database, mencoba berbagai aliran data yang melibatkan fungsi cloud, mengevaluasi perubahan Aturan Keamanan, memeriksa log untuk mengonfirmasi performa layanan back-end Anda, dan banyak lagi. Kemudian, jika Anda ingin memulai kembali, cukup bersihkan basis data Anda dan mulailah dari awal dengan ide desain baru.

Semuanya tersedia saat Anda memulai Local Emulator Suite dengan:

firebase emulators:start

Untuk membuat prototipe aplikasi hipotetis kita, mari siapkan dan uji fungsi cloud dasar untuk mengubah entri teks dalam database, dan buat serta isi database tersebut di UI Emulator Suite untuk memicunya.

  1. Buat cloud function yang dipicu oleh penulisan database dengan mengedit file functions/index.js di direktori project Anda. Ganti konten file yang ada dengan potongan berikut. Fungsi ini mendengarkan perubahan pada node dalam hierarki messages , mengonversi konten properti original node menjadi huruf besar, dan menyimpan hasilnya di properti uppercase node tersebut.
  2.   const functions = require('firebase-functions');
    
      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. Luncurkan Local Emulator Suite dengan firebase emulators:start . Cloud Functions dan emulator database dimulai, dikonfigurasi secara otomatis untuk saling beroperasi.
  4. Lihat UI di browser Anda di http://localhost:4000 . Port 4000 adalah default untuk UI, tetapi periksa keluaran pesan terminal oleh Firebase CLI. Perhatikan status emulator yang tersedia. Dalam kasus kami, emulator Cloud Functions dan Realtime Database akan berjalan.
    Gambar saya
  5. Di UI, pada tab Realtime Database , gunakan kontrol editor konten database untuk membuat kumpulan node dengan node messages yang berisi node message1 , pada gilirannya berisi node dengan kunci yang disetel ke original dan nilai yang disetel ke test . Ini memicu fungsi cloud kami. Amati bahwa properti uppercase baru segera muncul, dengan nilai TEST .
    Gambar sayaGambar saya
  6. Periksa tab Log untuk memastikan bahwa fungsi Anda tidak menjalankan kesalahan karena memperbarui database.

Anda dapat dengan mudah melakukan iterasi antara kode cloud function dan pengeditan database interaktif hingga Anda mendapatkan aliran data yang Anda cari, tanpa menyentuh kode akses database dalam aplikasi, mengkompilasi ulang, dan menjalankan ulang suite pengujian.

Hubungkan aplikasi Anda ke emulator

Ketika Anda telah membuat kemajuan yang baik dengan pembuatan prototipe interaktif dan telah menetapkan desain, Anda akan siap untuk menambahkan kode akses database ke aplikasi Anda menggunakan SDK yang sesuai. Anda akan tetap menggunakan tab database dan, untuk fungsi, tab Log di UI Emulator Suite untuk memastikan bahwa perilaku aplikasi Anda sudah benar.

Ingatlah bahwa Local Emulator Suite adalah alat pengembangan lokal. Menulis ke database produksi Anda tidak akan memicu fungsi yang Anda buat prototipe secara lokal.

Untuk beralih agar aplikasi Anda menulis ke database, Anda harus mengarahkan class pengujian atau konfigurasi dalam aplikasi ke emulator Realtime Database.

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);
Cepat
    // In almost all cases the ns (namespace) is your project ID.
let db = Database.database(url:"http://localhost:9000?ns=YOUR_DATABASE_NAMESPACE")

Web version 9

import { getDatabase, connectDatabaseEmulator } from "firebase/database";

const db = getDatabase();
if (location.hostname === "localhost") {
  // Point to the RTDB emulator running on localhost.
  connectDatabaseEmulator(db, "localhost", 9000);
} 

Web version 8

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

Otomatiskan pengujian Anda dengan skrip khusus

Sekarang untuk langkah alur kerja keseluruhan terakhir. Setelah membuat prototipe fitur dalam aplikasi dan tampak menjanjikan di semua platform, Anda dapat beralih ke penerapan dan pengujian akhir. Untuk pengujian unit dan alur kerja CI, Anda dapat memulai emulator, menjalankan pengujian dengan skrip, dan mematikan emulator dalam satu panggilan dengan perintah exec :

firebase emulators:exec "./testdir/test.sh"

Jelajahi masing-masing emulator secara lebih mendalam

Sekarang setelah Anda melihat seperti apa alur kerja sisi klien dasar, Anda dapat melanjutkan dengan detail tentang masing-masing emulator di Suite, termasuk cara menggunakannya untuk pengembangan aplikasi sisi server:

Apa selanjutnya?

Pastikan untuk membaca topik yang terkait dengan emulator tertentu yang ditautkan di atas. Kemudian: