Menghubungkan Node.js (Express.js) ke Firebase Cloud Firestore

Lintang Wisesa
purwadhikaconnect
Published in
3 min readSep 12, 2019

Firebase Cloud Firestore merupakan database NoSQL yang disediakan Firebase, didukung Google Cloud Platform. Pertama kali dirilis pada 3 Oktober 2017, Firebase Cloud Firestore dirancang sebagai pelengkap dari Firebase Realtime Database yang telah eksis sebelumnya.

Akhir Januari 2019, Firebase Cloud Firestore resmi menanggalkan status beta-nya dan naik ke level GA (General Availability). Well, beberapa bulan sebelumnya saya sempat mencoba menggunakan Firebase Cloud Firestore (yang masih beta version) untuk beragam aplikasi, mulai dari Node.js, React, React Native hingga project IoT (Internet of Things). Sebelum kita bahas tutorial selengkapnya, silakan simak video saya berikut. Jangan lupa like, share & subscribe! 😎

React & Firebase Cloud Firestore
React Native, Node.js & Firebase Cloud Firestore
ESP8266, Node.js deployed on Heroku & Firebase Cloud Firestore
ESP32, Node.js deployed on Heroku & Firebase Cloud Firestore
Arduino MKR1000, Node.js deployed on Heroku & Firebase Cloud Firestore

Kali ini saya akan mencoba berbagi tutorial sederhana bagaimana menghubungkan aplikasi backend Node.js (Express.js) dengan Firebase Cloud Firestore sebagai databasenya.

1. Requirements

Pastikan Node.js telah terinstall di device Anda (unduh di sini). Code editor yang saya gunakan adalah Visual Studio Code (unduh di sini), Anda bebas menggunakan code editor yang Anda sukai.

2. Setup Firebase

  • Signup/Login ke Firebase. Lebih baik gunakan akun Google Anda. Kemudian masuk ke console dan buatlah sebuah Firebase project.
  • Masuk ke fitur Database, pilih Cloud Firestore & klik tombol “Create database”. Selanjutnya pilih secure rule dan location. Untuk uji coba, pilihlah “Start in test mode” pada opsi secure rule. Sedangkan opsi location Anda bebas memilih lokasi server databasenya. Klik tombol “Done”, tunggu sesaat, dan database Anda siap digunakan.
  • Selanjutnya untuk menghubungkan Firebase Cloud Firestore dengan aplikasi eksternal yang akan kita buat, kita harus mendapatkan Firebase SDK. Masuk ke Project Settings, lalu register web app yang akan kita buat. Akan muncul seperti berikut.

3. Membuat Project Node.js (Express.js)

  • Buka code editor Anda, buat sebuah folder, aktifkan terminal & inisiasi sebuah project Node.js dan install beberapa package yang akan digunakan: nodemon, express, firebase, body-parser dan cors.
$ npm init$ npm i -g nodemon$ npm i express body-parser cors firebase
  • Struktur file project yang akan kita buat sederhana: sebuah file app.js dan sebuah folder route berisi fire.js dan route.js. Pada file route/fire.js berisi konfigurasi Firebase SDK yang telah kita dapatkan dari Project Settings Firebase:
  • Pada file route/route.js berisi route aplikasi Express yang mengakses konfigurasi Firebase di route/fire.js. Hanya 2 route yang akan kita coba, yakni untuk mengirim data (POST request)& mengambil data karyawan (GET request) ke/dari Cloud Firestore:
  • Pada file utama, app.js berisi program untuk mengaktifkan server dan mengakses route yang telah dibuat di route/route.js:

4. Testing the App

  • Jalankan aplikasi Express yang telah kita buat. Saya prefer menggunakan nodemon untuk mengaktifkan fitur auto debug saat menjalankannya.
$ nodemon app
  • Server akan aktif di http://localhost:3210. Cobalah untuk melakukan HTTP GET dan POST request ke http://localhost:3210/data. Anda bisa menggunakan aplikasi user client yang Anda punya, atau gunakan software untuk mencoba API yang sudah kita buat seperti Postman atau Insomnia. Untuk POST request, Anda bisa mengirimkan data yang akan disimpan ke database dalam bentuk JSON via body request dengan key: nama, usia dan kota.
{
"nama" : "Andi",
"usia" : 22,
"kota" : "Jakarta"
}
  • Done! Hasilnya akan terlihat di Firebase Cloud Firestore console. Data yang Anda kirim tersimpan dalam collection karyawan.
Data tersimpan di collection karyawan

Anda bisa kembangkan untuk membuat aplikasi yang lebih kompleks di berbagai platform, mulai dari web, mobile hingga IoT.

Selamat mencoba! 😊

--

--