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 mendeteksi perubahan pada dokumen dalam kumpulan messages , mengonversi konten bidang original dokumen menjadi huruf besar, dan menyimpan hasilnya di bidang uppercase dokumen tersebut.
  2.   const functions = require('firebase-functions');
    
      exports.makeUppercase = functions.firestore.document('/messages/{documentId}')
          .onCreate((snap, context) => {
            const original = snap.data().original;
            console.log('Uppercasing', context.params.documentId, original);
            const uppercase = original.toUpperCase();
            return snap.ref.set({uppercase}, {merge: true});
          });
      
  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 Cloud Firestore akan berjalan.
    Gambar saya
  5. Di UI, pada tab Firestore > Data , klik Mulai pengumpulan dan ikuti petunjuk untuk membuat dokumen baru dalam kumpulan messages , dengan fieldname original dan value test . Ini memicu fungsi cloud kami. Perhatikan bahwa bidang uppercase baru segera muncul, diisi dengan string "TEST".
    Gambar sayaGambar saya
  6. Di tab Firestore > Permintaan , periksa permintaan yang dibuat ke database yang diemulasikan, termasuk semua evaluasi Aturan Keamanan Firebase yang dilakukan sebagai bagian dari pemenuhan permintaan tersebut.
  7. Periksa tab Log untuk memastikan fungsi Anda tidak mengalami kesalahan saat 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 ke membuat aplikasi Anda menulis ke database, Anda harus mengarahkan class pengujian atau konfigurasi dalam aplikasi di emulator Cloud Firestore.

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 firestore = Firebase.firestore
firestore.useEmulator("10.0.2.2", 8080)

firestore.firestoreSettings = firestoreSettings {
    isPersistenceEnabled = false
}
Java
// 10.0.2.2 is the special IP address to connect to the 'localhost' of
// the host computer from an Android emulator.
FirebaseFirestore firestore = FirebaseFirestore.getInstance();
firestore.useEmulator("10.0.2.2", 8080);

FirebaseFirestoreSettings settings = new FirebaseFirestoreSettings.Builder()
        .setPersistenceEnabled(false)
        .build();
firestore.setFirestoreSettings(settings);
Cepat
let settings = Firestore.firestore().settings
settings.host = "localhost:8080"
settings.isPersistenceEnabled = false 
settings.isSSLEnabled = false
Firestore.firestore().settings = settings

Web version 9

import { getFirestore, connectFirestoreEmulator } from "firebase/firestore";

// firebaseApps previously initialized using initializeApp()
const db = getFirestore();
connectFirestoreEmulator(db, 'localhost', 8080);

Web version 8

// Firebase previously initialized using firebase.initializeApp().
var db = firebase.firestore();
if (location.hostname === "localhost") {
  db.useEmulator("localhost", 8080);
}

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: