Membuat Server GraphQL dengan Firestore + NodeJS + Clean Code Architecture (Bagian 1)

Mochammad Farrell
5 min readDec 11, 2019

--

Teknologi yang akan kita gunakan

Halo semuanya , kali ini saya akan mencoba untuk sharing ilmu saya bagaimana membuat server GraphQL dengan clean code architecture dan firebase. Disini saya juga masih belajar , jika teman — teman merasa ada yang salah bisa melakukan komen. Langsung aja cekidot !

Untuk menerapkan ada beberapa step yang harus kita lakukan :

  • Step 1 Membuat project firestore di firebase (Yang akan kita lakukan sekarang).
  • Step 2 Menginisiasi project nodejs dan install dependencies.
  • Step 3 Menerapkan clean code architecture pada NodeJS.
  • Step 4 Review code & menguji GraphQL.

Buka https://firebase.google.com/ dan masuk pake email teman — teman.

Halaman website https://firebase.google.com

Setelah login, klik buka console. Setelah berada di console , klik add project.

Klik add project untuk membuat project

Project yang kita buat akan menjadi database realtime yang akan menjadi tempat kita menyimpan data. Database realtime pada firebase disebut cloud firestore. Cloud firestore bersifat NoSQL yang tidak mempunyai relasi antar tabel.

Sekarang beri nama project, disini saya beri nama project yaitu projekku.

Lalu klik ‘Continue’.

Setting project seperti di atas dan lalu klik ‘Continue’.

Pilih ‘Default Account for Firebase’ lalu klik ‘Create project’.

Setelah ‘Create project’ firebase akan memulai loading untuk inisiasi proyek firebase. Tunggu dalam hitungan menit lalu klik ‘Continue’.

Setelah continue di klik, akan muncul halaman home console project. Karena kita menggunakan NodeJS maka pilih app web untuk memulai. Memilih app web dapat dilihat pada gambar

Setelah di klik firebase akan meminta app nickname untuk nickname aplikasi. Disini saya memakai nama projekku dan setelah itu register app. Untuk also set up Firebase Hosting for this app tidak usah di centang, karena ada konfigurasi lain.

Setelah register app berhasil, maka akan terlihat informasi project dan Firebase SDK. Nah Firebase SDK ini yang akan kita gunakan dalam file NodeJS nantinya untuk connect dengan firestore.

Informasi tentang project yang dibuat

Nah setelah itu klik ‘Continue to the console’ dan pilih settings.

Lalu ke tab ‘Service accounts’ dan Pilih Firebase Admin SDK. Karena kita menggunakan NodeJS, pilih NodeJS lalu klik ‘Generate new private key’. Lalu ada Pop up, pilih ‘Generate Key’. Langkah ini akan download file konfigurasi project kita ke firestore.

Hasil nya file konfigurasi untuk firestore akan di simpan di direktori download (tergantung teman — teman simpan file ketika download). File berekstensi .json contoh nama file seperti ‘projekku-xxxx-firebase-adminsdk-dwav1–12345578.json’. Nah rename file menjadi ‘serviceAccountKey.json‘ dan simpan dulu.

File serviceAccountKey.json jangan sampai hilang, karena ketika hilang kita harus generate pair key kembali untuk integrasi firestore

Ok setelah kita selesai download file .json , kembali ke firebase console lalu pilih database realtime.

Lalu klik ‘Create database’

Setelah klik Create database, akan muncul pop up lalu pilih ‘Start in test mode’ lalu klik ‘next’. Saya pilih ‘Start in test mode’ karena agar cepat melakukan pengaturan dan database dengan cepat terkonfiguras. Ketika kita memilih ‘Start in production mode’ maka akan ada konfigurasi tambahan. Tapi disini bebas untuk memilih apakah mau dijalankan production mode atau test mode.

Lalu ada pop up select location, disini klik ‘done’ saja. Nanti firebase akan memutuskan lokasi yang paling dekat secara otomatis.

Setelah sukses membuat database, maka akan tampil halaman seperti ini :

Klik ‘+ Start collection ‘ dan nama collection ID dengan ‘todo’.

Lalu kita isi field dengan nama ‘context’ yang bertipe string dan masukan value todo nya. Document ID dapat diisi secara manual, dan jika tidak diisi pun, firestore akan generate Document ID secara otomatis.

Lalu klik ‘save’. Jika berhasil makan collection ‘todo’ dan data document dengan id generate otomatis dan isi context akan ada pada database.

Ok teman — teman cukup sekian dari bagian 1. Lanjut bagian 2

--

--

Mochammad Farrell

Backend Developer at Xtremax , Mobile Developer and Machine Learning Enthusiast