Bagaimana Cara Berhasil Membangun API dengan Firebase?

Diterbitkan: 2021-09-07

Firebase adalah platform pengembangan aplikasi yang diluncurkan pada tahun 2012 dan diakuisisi oleh Google dua tahun kemudian. Pada awalnya, Firebase dianggap hanya sebagai database untuk aplikasi waktu nyata, tetapi Google melihat potensinya dan memutuskan untuk menambahkan layanan tambahan ke dalamnya.

Saat ini, Firebase merupakan sistem BaaS (backend as a service) dengan 18 layanan untuk memfasilitasi pembuatan aplikasi web dan seluler. Di antara perusahaan yang menggunakan layanan BaaS Firebase adalah Accenture, Alibaba Travels, Stack, Twitch, dan Instacart, bersama dengan lebih dari 2.300 lainnya.

Manfaat menggunakan Firebase

Layanan pertama yang ditawarkan Firebase adalah database real-time, dan tetap menjadi salah satu daya tarik terbesarnya. Database Firebase Real-time dihosting di cloud, menyimpan data dalam format JSON dan menyinkronkan secara real-time dengan setiap klien yang terhubung dengannya. Baik menggunakan iOS SDK, Android SDK, atau JavaScript SDK, semua aplikasi yang terhubung ke database Firebase Realtime berbagi satu instance database, selalu diperbarui dengan data terbaru.

Cloud Firestore adalah layanan Firebase lain yang menarik. Ini adalah database dokumen NoSQL yang dirancang untuk memfasilitasi penyimpanan data, sinkronisasi, dan kueri untuk aplikasi seluler dan web dalam skala global. Pembuatan hierarki untuk menyimpan data terkait dan kueri ekspresif untuk mengambil data memungkinkan realisasi potensi penuh Cloud Firestore. Pada gilirannya, skala kueri berdasarkan ukuran hasil daripada ukuran kumpulan data. Hal ini memungkinkan aplikasi untuk menskalakan dari awal tanpa menunggu hingga saat kebutuhan melebihi kapasitas.

Selain layanan database yang disebutkan di atas, Firebase juga menawarkan layanan hosting, penyimpanan file, fungsi (gaya AWS Lambda), di antara banyak hal lainnya.

Membuat API

API adalah cara untuk menyediakan layanan untuk digunakan oleh aplikasi Anda sendiri atau pihak ketiga. Firebase memungkinkan Anda untuk menyediakan layanan kustom yang, pada gilirannya, menggunakan layanan Firebase sendiri tanpa perlu repot menyiapkan backend untuk layanan tersebut. Anda dapat, misalnya, menawarkan akses ke database real-time Firebase untuk aplikasi pihak ketiga guna menanyakan informasi yang dikumpulkan oleh sensor industri.

Langkah pertama dalam membuat API di Firebase adalah mengakses konsol Firebase dan menambahkan proyek dengan mengklik “Tambah proyek” dan memberi nama proyek baru. Google akan memberi Anda opsi untuk mengaktifkan Google Analytics untuk proyek baru Anda. Disarankan untuk menerima rekomendasi ini, karena Anda akan mendapatkan manfaat seperti pengujian A/B dan berbagai macam laporan statistik dari API Anda.

Setelah membuat proyek, Anda akan dapat memilih layanan Firebase yang akan digunakan API Anda. Untuk mengilustrasikan tugas ini, kita akan melihat cara menggunakan layanan database Firebase Realtime.

Menyiapkan database real-time di Firebase

Di bilah navigasi di sebelah kiri, di dalam bagian Kembangkan, klik Realtime Database. Tombol "Buat Database" akan muncul di sebelah kanan. Klik untuk membuat database pertama Anda di Firebase.

Selanjutnya, Anda harus memilih di antara beberapa opsi lokasi geografis untuk database baru Anda. Pilih salah satu yang paling dekat dengan pengguna Anda. Ini adalah aspek penting untuk meminimalkan latensi API Anda, terutama di aplikasi waktu nyata.

Langkah selanjutnya adalah mengkonfigurasi aturan keamanan dasar untuk database Anda. Anda dapat memilih mode terkunci dan kemudian menetapkan izin akses sesuai kebutuhan, atau memilih mode uji, yang memungkinkan semua membaca dan menulis.

Anda dapat memulai dengan opsi mode uji untuk tidak mempersulit pengaturan keamanan di awal. Anda selalu dapat membuat aturan nanti untuk menyetel konfigurasi keamanan dengan perincian yang lebih besar.

Segera setelah Anda selesai mengonfigurasi database, API yang sesuai juga diaktifkan di bagian API dan Layanan konsol pribadi Anda di Google Cloud Platform.

Memprogram API Firebase

Pada titik ini, Anda sudah memiliki elemen dasar proyek Anda yang dikonfigurasi di konsol Firebase. Langkah selanjutnya adalah menulis kode API Anda. Untuk melakukannya, Anda perlu menginisialisasi hosting dan fungsi Firebase di komputer lokal Anda. Anda dapat menginstal firebase-tools menggunakan npm:

 npm install -g firebase-tools

Kemudian Anda dapat masuk ke firebase dan menginisialisasi proyek Anda dengan perintah berikut:

 firebase login firebase init

Layar selamat datang akan ditampilkan di mana Firebase memberi tahu Anda tentang folder tempat proyek Anda akan diinisialisasi, dan menu opsi akan muncul.

Di menu itu, pilih Fungsi dan Hosting (opsi Hosting akan memungkinkan Anda memiliki URL khusus untuk API yang akan Anda kembangkan). Kemudian pilih dari daftar aplikasi Firebase yang Anda buat sebelumnya, setelah itu Anda harus memilih bahasa yang akan digunakan. Untuk mengembangkan API web, Anda dapat memilih JavaScript.

Jika Anda akan menggunakan dependensi paket, instal dengan npm di dalam folder fungsi. Kemudian Anda dapat mulai menulis kode untuk fungsi Anda. Ingatlah untuk menyertakan paket firebase-functions dan firebase-admin, bersama dengan paket lain yang Anda butuhkan:

 import * as functions from 'firebase-functions'; import * as admin from 'firebase-admin';

Untuk menggunakan database real-time, Anda harus menentukan URL-nya saat menginisialisasi JavaScript SDK Anda. URL terletak di bagian Realtime Database di Firebase console. Anda dapat mengenalinya dengan formatnya:

 https://<database-name>.<region>.firebasedatabase.app

Anda dapat menggunakan cuplikan berikut untuk menginisialisasi SDK Anda, menggantikan data yang sesuai dengan objek konfigurasi proyek Anda:

 var config = { apiKey: "apiKey", authDomain: "projectId.firebaseapp.com", databaseURL: "https://databaseName.firebaseio.com", storageBucket: "bucket.appspot.com" }; firebase.initializeApp(config); var database = firebase.database();

Setelah Anda menulis kode fungsi API Anda, sekarang saatnya untuk menerapkan. Tetapi sebelum melakukannya, Anda harus membuat beberapa perubahan di firebase.json, menambahkan baris berikut, dimodifikasi sesuai dengan konfigurasi proyek Anda:

 "rewrites": [ { "source": "/api/v1/**", "function": "webApi" } ]

Langkah selanjutnya adalah penyebaran. Pertama kali Anda harus melakukan penerapan lengkap, jalankan perintah:

 firebase deploy

Dalam penerapan berikutnya, Anda hanya dapat menerapkan fungsi, menggunakan parameter –only functions.

Setelah menjalankan perintah penerapan, Firebase CLI menampilkan URL titik akhir HTTP dari fungsi Anda di terminal, yang dapat Anda gunakan untuk memanggil API dari aplikasi web. URL berisi ID proyek Anda dan wilayah untuk fungsi HTTP. Misalnya, URL berikut dapat digunakan untuk memanggil fungsi kueri item dengan meneruskannya itemid=1 sebagai parameter:

 https://us-central1-apiproject-8753c.cloudfunctions.net/itemQuery?itemid=1

Untuk menjalankan fungsi, buka URL dengan parameter yang sesuai di browser.

Perhatikan bahwa penerapan ke lingkungan produksi memerlukan langganan paket Firebase Blaze, yang bayar sesuai penggunaan, seperti yang dapat Anda baca di halaman harga Firebase. Ini adalah layanan pasca-penagihan, yang berarti Anda akan ditagih untuk penggunaan Anda pada akhir setiap bulan.

Jika Anda tidak memiliki langganan Blaze, perintah penerapan tidak akan menampilkan URL API Anda. Sebagai gantinya, Anda akan melihat pesan yang memberi tahu Anda bahwa Anda harus berlangganan paket Blaze jika ingin menerapkan ke lingkungan runtime. Dalam hal ini, Anda masih dapat menggunakan Firebase Local Emulation Suite untuk membuat dan menguji aplikasi di mesin lokal Anda alih-alih menerapkannya ke lingkungan produksi Firebase. Pengujian lokal berguna untuk menghindari biaya yang tidak perlu selama pengembangan aplikasi, karena setiap pengujian dapat menimbulkan biaya pada akun Anda.

Pengujian dan Pembuatan Prototipe Lokal

Alat Local Emulator Suite menawarkan antarmuka pengguna terintegrasi yang membuat pembuatan prototipe menjadi mudah dan berguna untuk menguji aplikasi Anda di mesin lokal Anda.

Dengan antarmuka pengguna Emulator Suite, Anda dapat menguji desain database, alur kerja Cloud Functions, menganalisis kinerja layanan backend, dan mengevaluasi perubahan aturan keamanan, di antara tugas-tugas lainnya. Ini pada dasarnya adalah kotak pasir yang aman untuk menguji fungsionalitas API Anda sebelum mengirimkannya ke lingkungan produksi.

Untuk mengemulasi fungsi Anda atau menguji aplikasi Anda secara lokal, jalankan firebase emulators:start. Anda harus menginstal Java untuk dapat menggunakan Firestore Emulator. Jika Anda tidak memilikinya, Anda dapat menginstalnya dari sini.

Saat Anda memanggil Firestore Emulator, perintah akan mengembalikan URL yang memungkinkan Anda membuka antarmuka pengguna Emulator Suite di browser Anda. Secara default, URL ini akan menjadi localhost:4000, tetapi mungkin berbeda di setiap mesin.

Anda juga akan mendapatkan URL lengkap untuk fungsi HTTP Anda. URL ini akan terlihat mirip dengan:

 http://localhost:5001/apiproject-8753c/us-central1/itemQuery

hanya itu yang akan memiliki nama proyek Anda, nama fungsi Anda, dan mungkin juga memiliki nomor port yang berbeda di mesin lokal Anda.

Untuk menguji fungsi tersebut, salin URL yang dikembalikan oleh emulator, tambahkan parameter yang diperlukan (misalnya ?itemid=1) dan masukkan di tab baru browser Anda. Hasil eksekusi API akan muncul di UI Emulator Suite.

Di tab Logs, Anda akan melihat log baru yang menunjukkan bahwa fungsi itemQuery() telah dijalankan. Jika fungsi Anda menghasilkan data baru di database Firestore, Anda akan melihatnya di tab Firestore.

Mendapatkan lebih banyak eksposur untuk API Anda

Jika Anda ingin API yang Anda kembangkan menjadi populer, Firebase juga dapat membantu Anda. Tidak hanya karena memungkinkan Anda untuk membangun aplikasi Anda lebih cepat, mengambil banyak pekerjaan untuk mendapatkan layanan backend dan berjalan, tetapi juga dengan membantu Anda dengan pemosisian produk Anda. Bagaimana mungkin? Hanya karena aplikasi yang terkait dengan Firebase memiliki peringkat yang lebih baik dalam peringkat pencarian daripada aplikasi lain.

Juga, pertimbangkan API pengindeksan aplikasi Firebase. Alat ini meningkatkan peringkat pencarian tautan aplikasi dan membantu pengguna menemukan konten yang diinginkan. Ini juga menempatkan tombol Instal setelah tombol beranda aplikasi Anda sehingga pengguna yang tertarik hanya dengan sekali klik untuk menjadi pengguna aplikasi Anda.

Kesimpulannya, Firebase tidak hanya menawarkan layanan backend yang secara dramatis mempercepat pengembangan API Anda, tetapi setelah aktif dan berjalan dan diekspos ke dunia, ini juga membantu Anda mempromosikannya – dan menghasilkan uang darinya.