lifelong learner — urip iku urup, currently working on accenture.

Setup nodejs dengan firebase admin SDK dan realtime database

0
Degananda.com -

Firebase adalah BAAS (backend as a service) yang disediakan oleh google. Dengan menggunakan Firebase kita tidak perlu membuat sebuah webservice atau backend untuk melakukan manipulasi data atau hal-hal lainnya. Tetapi, hal itu tidak sepenuhnya benar.

Dikarenakan meskipun CRUD telah dihandle oleh firebase kita tetap harus menulis backend untuk beberapa kasus. Contoh kasusnya adalah :

  1. Mengubah password, dengan menggunakan Firebase Admin SDK kita dapat menggubah password dari user.
  2. Melakukan update terhadap node / data yang berjumlah sangat banyak. ( biasannya > 100 node/data).
  3. Melakukan delete terhadap node dengan jumlah yang sangat banyak (biasannya > 100 node/data).
  4. Melakukan cronjob untuk mengawasi data-data tertentu. Misalnya kita memiliki invocie yang harus expired pada jam 15 siang pada tanggal 15 bulan april tahun 2017. Kita membutuhkan suatu backend untuk menjalankan fungsi tersebut.

Pada intinnya, firebase Admin SDK memiliki fungsi untuk menangani hal-hal berat atau tidak mungkin dilakukan dengan firebase client. Umumnya, isue integritas data pada firebase menjadi momok dikarenakan tidak adannya relasional. Oleh karena itu setiap node dan child harus secara “manual” dijaga integritasnya dengan mengupdate seluruh node dan child ketika terjadi perubahan pada node tertentu.

Untuk membuat sebuah backend dengan menggunakan firebase admin SDK kita perlu menentukan jenis backend yang digunakan. Saat ini yang support adalah java dan NodeJS. Pada ulasan kali ini yang akan dibahas adalah menggunakan NodeJS. beberapa hal yang perlu disiapkan adalah :

  1. NodeJS
  2. Project firebase
  3. Editor / IDE favorit anda.

tujuan dari ulasan ini adalah bagaimana kita dapat menghubungkan antara firebase dengan NodeJS dan kemudian menampilkan data(realtime database) pada konsole. Berikut ini adalah langkah – langkah pembuatan backend dengan nodeJS dan firebase admin SDK.

1. buat project node baru dan konfigurasi sesuai dengan keinginan.

npm init

2. Mengenerate service account key.

langkah melakukan generate service account key :

  1. pastikan telah membuat akun firebase dan sebuah project
  2. console.firebase.google.com
  3. pilih project yang ingin dibuat backendnya
  4. pilih icon cog/settings -> project settings
    Screen Shot 2017-05-16 at 7.32.56 PM
  5. Pilih tab service account
    Screen Shot 2017-05-16 at 7.33.34 PM
  6. pada bagian bawah, klik tombol generate new private key
    Screen Shot 2017-05-16 at 7.33.54 PM
  7.  masukan file yang diunduh tersebut ke project nodeJS beri nama sesuai dengan keinginan anda.
    Screen Shot 2017-05-16 at 7.35.44 PM

2. Install beberapa module yang diperlukan menggunakan NPM(Node package manager).

  1. firebase-admin
    npm install firebase-admin --save

3. PERHATIAN! Pastikan jam komputer lokal atau jika anda berada dalam VPS maka sesuaikan jam OS pada VPS   telah sesuai dengan jam internet. Tanpa jam yang sesuai firebase-admin tidak dapat dijalankan.

4. buat app.js dan tuliskan kode berikut ini


// panggil modul firebase-admin
var admin = require('firebase-admin');
// tentukan lokasi service account
var serviceAccount = require('./service_account.json');
// melakukan inisialisasi aplikasi
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
databaseURL: "https://gameguidehub.firebaseio.com"
});
// nyalakan fitur debugging untuk mempermudah proses development/coding
admin.database.enableLogging(true);
// buat sebuah reference terhadap node atau data pada database  untuk melakukan testing koneksi
var db = admin.database();
var invoicesRef = db.ref("/test");

Jangan lupa untuk selalu mengaktifkan logging pada saat melakukan coding. Tanpa mengaktifkan logging sangat usah untuk mendebug error yang terjadi.
5. Jalankan app.js
pastikan mendapatkan pesan “realtime connection established” seperti pada gambar dibawah ini.
Screen Shot 2017-05-16 at 7.47.36 PM
jika pada konsol telah muncul informasi seperti diatas anda telah berhasil menyambungkan nodeJS dengan firebase. Pada ulasan selanjutnya akan dibahas bagaimana melakukan cronjob dengan bantuan library nodecron dan menggunakan realtime database dengan firebase admin SDK (create , read, update dan delete).