Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Android SDK

Aplikasi Tanpa Server dengan Cloud Functions Firebase

by
Read Time:10 minsLanguages:

Indonesian (Bahasa Indonesia) translation by Kurniawan Sugi Purwanto (you can also view the original English article)

Tujuan Freebase adalah membantu pengembang untuk membuat aplikasi yang lebih baik dan menumbuhkan mereka menjadi usaha yang sukses. Dengan menangani back-end atau infrastruktur aplikasi Anda, Firebase memungkinkan untuk berfokus pada memecahkan masalah para pengguna Anda. Salah satu fitur luar biasa Firebase yang diumumkan pada Google Cloud Next '17 Conference  bulan Maret ini adalah Cloud Functions. Di tutorial ini, Anda akan belajar tentang fitur baru ini dengan membuat aplikasi Android sederhana dengannya.

Apa Itu Cloud Functions untuk Firebase?

Cloud Functions Firebase berjalan di environment Node.js yang hosted, bersifat privasi, dan bisa diubah ukurannya, yang di situ Anda bisa menjalankan kode JavaScript. Anda bisa dengan mudah membuat fungsi-fungsi reaktif yang dipicu (trigger) apabila ada even yang terjadi. Fungsi-fungsi Cloud tersedia untuk Google Cloud Platform dan Firebase (keduanya dibangun berdasarkan Google Cloud Functions).

Untuk saat ini, Cloud Functions mendukung berbagai trigger berikut yang bisa Anda dengar dan respon:

  • Realtime Databse Triggers: menjalankan suatu fungsi ketika terjadi even write pada path suatu database.
  • Authentication Triggers: menjalankan suatu fungsi apabila suatu pengguna baru dibuat atau ada pengguna yang dihapus.
  • Analytics Triggers: menjalankan suatu fungsi apabila ada even konversi baru yang di-log.
  • Cloud Storage Triggers: suatu fungsi yang bisa dijalankan apabila ada perubahan di bucket seperti pengunggahan file atau folder, pembaruan, atau penghapusan.
  • Cloud Pub/Sub Triggers: menjalankan fungsi apabila ada pesan baru diterima di topik Google Cloud Pub/Sub.
  • HTTPS Triggers: menjalankan suatu permintaan yang diberikan ke suatu endpoint.

Jadi Mengapa Harus Menggunakan Cloud Functions?

Sekarang Anda sudah bisa melihat sekian kemampuan yang ditawarkan Cloud Functions. Tetapi mengapa harus menggunakannya?

Menjalankan dan mengatur suatu back end dan server bisa sungguh menyakitkan—Anda harus menangani berbagai isu seperti skalabilitas dan penulisan kode dengan bahasa server—tetapi dengan Cloud Functions kompleksitas ini akan dikurangi. Meskipun demikian, tugas yang intensif secara komputasional bisa dilakukan di cloud bukannya di perangkat klien (semacam mengubah ukuran gambar untuk diunggah atau menulis berbagai path database). Kode Anda juga akan lebih aman di cloud daripada di perangkat klien, sehingga Anda bisa dengan aman menyimpan data seperti kunci-kunci rahasia di server Anda.

Di tutorial ini, Anda akan belajar cara menggunakan Realtime Database Triggers yang akan berjalan ketika terjadi even write database. Lalu, kita akan melihat cara menggunakan layanan Firebase Cloud Messaging untuk mengirimkan notifikasi ke perangkat yang berlangganan suatu topik. Kita akan membuat suatu aplikasi sederhana bernama Tutsplus Alerts, yang akan mengirimkan notifikasi ke pelanggan topik "android" apabila ada artikel baru.

Prasyarat

Untuk mengikuti tutorial ini Anda harus sudah akrab dengan:

Dan Node.js harus sudah terpasang di komputer Anda.

Pelajari berbagai tutorial berikut di sini, di Envato Tuts+, jika Anda butuh bantuan untuk memulai dengan Firebase:

1. Membuat Suatu Cloud Function Firebase

Memasang Firebase CLI

Karena prasyaratnya sudah siap, mari mengunduh Cloud Functions.

Untuk mulai menggunakan Cloud Functions dibutuhkan Firebase CLI (command-line interface) yang dipasang dari npm. Jika di mesin Anda sudah ada Node yang siap, Anda bisa menginstal Cloud Functions dengan:

Perintah itu akan memasang Firebase CLI secara global beserta berbagai dependensi Node.js yang dibutuhkan.

Menginisialisasi Proyeknya

Untuk menginisialisasi proyek Anda:

  1. Jalankan firebase login untuk masuk ke Firebase melalui peramban dan autentikasi tool CLInya.
  2. Buat direktori baru untuk proyek dengan nama tutsplus-alerts.
  3. Terakhir, jalankan firebase init functions dari direktori baru tersebut. Tool ini memberi Anda pilihan untuk memasang dependensi dengan NPM. Tidak masalah menolak opsi itu jika Anda ingin mengelola dependensi-dependensi tersebut dengan cara lain.

Setelah perintah-perintah tersebut berhasil dituntaskan, struktur proyek Anda akan terlihat seperti ini:

  • .firebaserc: suatu file tersembunyi yang membantu Anda untuk berpindah antar proyek dengan cepat menggunakan firebase use.
  • firebase.json: mendeskripsikan berbagai properti untuk proyek Anda.
  • functions/: folder ini berisi semua kode untuk berbagai fungsi Anda.
  • functions/package.json: file paket NPM yang mendeskripsikan Cloud Functions Anda.
  • functions/index.js: sumber utama kode Cloud Functions Anda.
  • functions/node_modules/: folder tempat semua dependensi NPM Anda diinstal.

Mengimpor Berbagai Modul yang Dibutuhkan dan Menginisialisasi Aplikasinya

Untuk mengembangkan aplikasi sederhana Tutsplus Alerts kita, hanya dibutuhkan dua modul node: modul Cloud Functions dan Admin SDK (modul-modul ini sudah terpasang). Buka saja index.js dan syaratkan modul-modul ini, lalu inisialisasi suatu instance aplikasi admin.

Menulis Kode Cloud Function

Sekarang modul yang disyaratkan untuk proyek kita telah diimpor dan diinisialisasi, mari menulis kode untuk fungsi cloud di file index.js. Sebagaimana yang dinyatakan di awal, kita akan menulis suatu fungsi yang akan dijalankan ketika terjadi even onWrite() di realtime database Firebase, lalu meresponnya dengan mengirim pemberitahuan (pesan downstream) ke perangkat pelanggan.

Dalam kode di atas, kita mendengarkan path database /articles/{articleId},  {articleId} mewakili id artikel yang berhasil dituliskan. Saat ini, yang sungguh kita perhatikan adalah data yang sudah ditulis. Untuk mendapatkannya, kita menggunakan event.data, yang merupakan suatu antarmuka statis DeltaSnapshot.

Setelahnya, tambahkan data dari snapshot ini ke suatu message payload dan kirimkan ke topik "android". Kode asinkron tersebut disederhanakan dengan JavaScript promises.

Perhatikan bahwa dalam kode di atas, kita menulis konsolnya dengan menggunakan console.log(), yang akan membantu untuk debugging dan monitoring. Kita bisa melihat log ini di dasbor Firebase atau melalui baris perintah dengan:

Karena ini berjalan di Node.js, pahami bahwa Anda bisa memasang modul lainnya yang tersedia dari NPM. Anda juga bisa menulis kode di JavaScript ES6 atau TypeScript bukannya di vanilla JavaScript.

Men-Deploy Cloud Function

Mari deploy Cloud Functionnya. Jalankan perintah ini untuk deployment:

Sekarang kita bisa menulis kode aplikasi Android yang akan berlangganan topiknya, menuliskannya ke realtime database, dan menerima pemberitahuan apabila ada data yang dituliskan ke realtime database—saat itulah cloud function dieksekusi.

2. Membuat Aplikasi TutsplusAlerts

Buat suatu Android Studio Project

Pertama, buka Android Studio dan buat proyek baru "TutsplusAlerts" dengan aktivitas kosong yang dinamai MainActivity.

Android Studio create new projectAndroid Studio create new projectAndroid Studio create new project

Untuk bisa mengikutinya pastikan Anda telah mengintegrasikan Firebase ke aplikasi Anda.

Tambahkan Realtime Database Dependency

Tambahkan dependensi berikut ke file build.gradle Anda:

Pastikan Anda menyinkronisasi proyeknya setelah menambahkan itu.

Buat Modelnya

Mari membuat model entity artikel agar tetap tinggal di realtime database kita.

Buat Tata Letak XML-nya

Tata letak XML untuk Activity utama hanya akan memiliki dua EditTexts dan satu tombol saja yang akan mengirimkan artikel barunya.

Tuliskan ke Realtime Database

Sekarang kita akan menulis ke path /articles/ di Realtime Database.

Aplikasi Anda membutuhkan akses untuk menulis ke database. Untuk tujuan demo, Anda bisa mengatur Security Rules untuk mengizinkan semua pembacaan dan penulisan. Di aplikasi sesungguhnya Anda tidak akan menggunakan pengaturan keamanan yang tidak terlindung seperti itu.

Anda bisa belajar lebih lanjut tentang Firebase Security Rules di kiriman saya di Envato Tuts+.

Jalankan Aplikasinya

Di tahap ini, kita bisa menguji apikasinya dan melihat apakah Cloud Function sukses dijalankan. Masukkan judul dan penulis, lalu klik tombol submit. Setelah itu, kunjungi dasbor Functions dan lihat log-nya. Log kustomnya akan tampil.

Cloud Functions DashboardCloud Functions DashboardCloud Functions Dashboard

Dari log di atas, kita melihat bahwa Cloud Function berhasil dieksekusi dan mengirimkan pesan dengan suatu payload ke perangkat yang berlangganan topik 'android', tetapi belum ada perangkat yang berlangganan topik tersebut. Di bagian berikutnya, kita akan menggunakan Firebase Cloud Messaging supaya perangkat bisa berlangganan topik dan memroses pesan yang masuk dari server untuk menampilkan suatu pemmberitahuan.

3. Menambahkan Dukungan Firebase Cloud Messaging

Sertakan Dependensinya

Masukkan dependensi Firebase Messaging ke file build.grandle dan setelah itu sinkronkan proyek Anda.

Menangani Pesan

Kita perlu membuat suatu layanan yang memperluas FirebaseMessagingService dan mengabaikan panggilan balik onMessageReceived.

Pada kode di atas, kita juga mendapatkan payload data dan menunjukkannya dalam suatu pemberitahuan, baik ketika aplikasinya ada di latar depan maupun latar belakang.

Perbarui Manifest File

Perbarui manifest file, termasuk service yang dibuat lebih awal dalam tag <application>.

Berlanggananlah ke Suatu Topik

Terakhir, kita harus berlangganan ke topik 'android' sehingga perangkat bisa menerima dan memroses pesan yang dikirimkan ke topik itu.

Jalankan Aplikasinya

Jalankan aplikasi untuk kedua kalinya dan masukkan judul serta penulis lalu klik tombol submit. Kali ini, pemberitahuan akan muncul kapan saja ada artikel baru yang dikirimkan ke database oleh tiap pengguna aplikasi.

final app screenshotsfinal app screenshotsfinal app screenshots

Untuk melakukan ini sebelum ada Cloud Functions, Anda akan membutuhkan server HTTP atau XMPP, artinya kode yang ditulis harus lebih banyak plus Anda harus mengatur server dan dukungannya.

Kesimpulan

Dalam tutorial ini, Anda belajar tentang Cloud Functions untuk Firebase: definisinya, mengapa Anda membutuhkannya, dan bagaimana mulai menggunakan Cloud Functions untuk aplikasi Anda. Pahami bahwa Cloud Functions untuk Firebase masih bersifat beta publik pada saat artikel ini ditulis.

Untuk belajar lebih lanjut tentang Cloud Functions untuk Firebase, merujuklah ke dokumentasi resmi. Sementara itu, pelajari juga kursus dan tutorial lainnya dari kami tentang pengembangan aplikasi Android.

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.