Buka konsol

Menjalankan fungsi secara lokal

Firebase CLI meliputi emulator Cloud Functions yang dapat mengemulasi jenis fungsi berikut:

  • Fungsi HTTPS
  • Fungsi yang dapat dipanggil
  • Fungsi Cloud Firestore

Anda dapat menjalankan fungsi secara lokal untuk mengujinya sebelum menerapkannya ke produksi.

Menginstal Firebase CLI

Untuk menggunakan emulator Cloud Functions, terlebih dahulu instal Firebase CLI:

npm install -g firebase-tools

Untuk menggunakan emulator lokal, Cloud Functions Anda harus bergantung pada:

  • firebase-admin versi 7.0.0 atau yang lebih baru.
  • firebase-functions versi 2.0.0 atau yang lebih baru.

Menyiapkan kredensial admin (opsional)

Jika Anda ingin pengujian fungsi berinteraksi dengan Google API atau Firebase API lainnya melalui Firebase Admin SDK, Anda mungkin perlu menyiapkan kredensial admin.

  • Pemicu Cloud Firestore dan Realtime Database telah memiliki kredensial memadai, dan tidak memerlukan penyiapan tambahan.
  • Semua API lain, termasuk Firebase API seperti Authentication dan FCM atau Google API seperti Cloud Translation atau Cloud Speech, memerlukan langkah penyiapan tambahan yang dijelaskan dalam bagian ini. Ini berlaku baik saat menggunakan shell fungsi maupun firebase serve.

Agar dapat menyiapkan kredensial admin untuk fungsi teremulasi:

  1. Buka panel Akun Layanan pada Google Cloud Console.
  2. Pastikan akun layanan default App Engine dipilih, dan gunakan menu opsi di sebelah kanan untuk memilih Buat kunci.
  3. Saat diminta, pilih JSON untuk jenis kunci, dan klik Buat.
  4. Atur agar kredensial default Google Anda mengarah ke kunci yang telah didownload.

    Unix

    $ export GOOGLE_APPLICATION_CREDENTIALS="path/to/key.json"
    
    $ firebase emulators:start
    

    Windows

    $ set GOOGLE_APPLICATION_CREDENTIALS=path\to\key.json
    
    $ firebase emulators:start
    

Setelah menyelesaikan semua langkah ini, pengujian fungsi Anda dapat mengakses Firebase dan Google API menggunakan Admin SDK. Misalnya, saat menguji pemicu Authentication, fungsi yang teremulasi dapat memanggil admin.auth().getUserByEmail(email).

Menjalankan rangkaian emulator

Untuk menjalankan emulator Cloud Functions, gunakan perintah emulators:start:

firebase emulators:start

Perintah emulators:start akan memulai emulator untuk Cloud Functions, Cloud Firestore, Realtime Database, dan Firebase Hosting berdasarkan produk yang Anda inisialisasi di project lokal menggunakan firebase init. Jika Anda ingin memulai emulator tertentu, gunakan tanda --only:

firebase emulators:start --only functions

Jika Anda ingin menjalankan serangkaian pengujian atau skrip pengujian setelah emulator dimulai, gunakan perintah emulators:exec:

firebase emulators:exec "./my-test.sh"

Interaksi dengan layanan lain

Rangkaian emulator meliputi beberapa emulator yang memungkinkan pengujian interaksi lintas produk.

Cloud Firestore

Jika Anda memiliki Cloud Functions yang menggunakan Firebase Admin SDK untuk menulis ke Cloud Firestore, penulisan ini akan dikirim ke emulator Cloud Firestore jika sedang berjalan. Jika Cloud Functions selanjutnya dipicu oleh penulisan tersebut, maka penulisan akan dijalankan di emulator Cloud Functions.

Firebase Hosting

Jika Anda menggunakan Cloud Functions untuk menghasilkan konten dinamis untuk Firebase Hosting, firebase emulators:start gunakan fungsi HTTP lokal Anda sebagai proxy untuk hosting.

Logging

Emulator melakukan streaming log dari fungsi ke jendela terminal tempat mereka dijalankan. Jendela tersebut menampilkan semua output dari pernyataan console.log(), console.info(), console.error(), dan console.warn() dalam fungsi Anda.

Langkah Berikutnya

Untuk contoh lengkap penggunaan rangkaian emulator Firebase, lihat contoh quickstart.