Saturday, September 17, 2016

Implementasi Firebase Auth pada Android

Pada tulisan kali ini, kita akan membahas sedikit tentang Firebase, sebuah cloud service yang menyediakan layanan Backend as a Server (BaaS) yang beberapa tahun lalu diakuisisi oleh Google. Singkat cerita, Firebase memberikan kemudahan bagi developers untuk membangun aplikasi yang membutuhkan basic user management (seperti login via email, login via facebook, login via google, etc) dan membutuhkan akses data pada database secara realtime. Tidak hanya itu, Firebase juga memiliki banyak fitur yang dapat digunakan mulai dari tahap pengembangan hingga tahap monetizing aplikasi, tidak terbatas pada mobile apps (iOS dan Android) saja, Firebase juga dapat digunakan sebagai backend dari web apps .

Pada kesempatan ini, kita akan berfokus pada fitur authentication milik Firebase dan bagaimana mengimplementasikannya pada mobile apps berbasiskan Android. Pada fitur authentication milik Firebase, developers dapat memilih metode login yang diinginkan, baik itu menggunakan Facebook maupun menggunakan email-password. Metode paling sederhana ini dapat diimplementasikan dengan menggunakan REST API milik Firebase, ataupun melalui Firebase SDK. pada postingan ini, kita akan melakukannya dengan menggunakan Firebase SDK. Secara sederhana, implementasi fitur otentikasi menggunakan email-password milik Firebase dapat diimplementasikan, melalui tiga tahap, seperti yang akan dibahas pada postingan kali ini.

Setup Firebase Project
1. Buat sebuah project pada konsol Firebase
2. Tambahkan aplikasi yang dikembangkan pada project di Firebase
3. Lakukan berbagai setup yang diperlukan, pada postingan ini setup tersebut adalah mengaktifkan authentication dengan menggunakan email-password, seperti pada gambar di bawah ini.
4. Unduh file 'google-services.json' dari project tersebut, yang akan digunakan dalam android project agar dapat mengakses firebase project yang telah kita setup.

Setup Android Project
1. Buat sebuah project pada Android Studio
2. Pindahkan file 'google-services.json' yang sebelumnya telah diunduh, ke dalam folder 'app' dari project yang dibuat pada Android Studio
3. Tambahkan dependency pada 'build.gradle' dari project yang telah dibuat, seperti pada gambar di bawah ini.
4. Tambahkan dependencies pada 'app/build.gradle' dari project yang telah dibuat, seperti pada gambar di bawah ini.
5. Karena pada postingan ini akan mengimplementasikan fitur otentikasi milik Firebase, maka pada dependencies dari 'app/build.gradle' tersebut perlu ditambahkan potongan code berikut :
compile 'com.google.firebase:firebase-auth:9.4.0'

Setup Firebase Auth in Android Project
Dengan memanfaatkan fitur otentikasi milik Firebase, kita dapat dengan mudah membuat proses register, login, dan logout dari user pada aplikasi kita. Seperti yang telah dijabarkan pada dokumentasi dari fitur otentikasi milik Firebase, kita dapat membuat sebuah user instance seperti pada gambar di bawah ini.

Akan tetapi, sebelum kita membuat sebuah user instance, kita perlu melakukan setup terhadap 'AuthStateListener' milik Firebase. Hal tersebut diperlukan agar aplikasi dapat mengetahui apakah user sedang dalam kondisi logged in atau tidak. Proses setup tersebut sebaiknya dilakukan di dalam method 'onCreate' milik activity dari aplikasi kita yang membutuhkan informasi terkait user state tersebut, seperti pada gambar di bawah ini.
Setelah melakukan setup tersebut, selanjutnya kita perlu memasang 'mAuthStateListener' tersebut, agar ia bekerja dengan aktif. Hal tersebut dapat dilakukan dengan menambakan potongan kode berikut pada method 'onStart' milik activity tersebut.
mAuth.addAuthStateListener(mAuthListener);
Ohiya, dan jangan lupa untuk melepas 'mAuthListener' tersebut ketika activiy sudah tidak aktif, yaitu dengan menambahkan potongan kode berikut pada method 'onStop' dari activity tersebut.
if (mAuthListener != null) {
    mAuth.removeAuthStateListener(mAuthListener);
}

Setelah membahas terkait register dan setup, selanjutnya bagaiman untuk menangani proses login dan logout? Firebase SDK memberikan kemudahan untuk mengatasi hal tersebut, khususnya proses logout. Proses mengubah user state menjadi logged out dari logged in dapat dilakukan dalam satu baris kode, yaitu dengan memanggil method 'signOut()' sebagai berikut.
mAuth.signOut();
et voila, dengan sesederhana itu user telah logout dari aplikasi. Bagaimana dengan proses login? serupa dengan proses register yang telah dibahas, proses login dapat dilakukan dengan mengimplementasikan method 'signInWithEmailAndPassword(email, password)' milik Firebase sepeti pada gambar di bawah ini.
Sederhana dan mudah kan? Sekarang implementasi otentikasi email-password dapat dilakukan dengan mudah, tanpa perlu memikirkan bagaimana membuat proses tersebut aman dan cepat, karena pertimbangan-pertimbangan tersebut telah diatasi oleh Firebase. Bagaimana dengan informasi mengenai user tersebut? Informasi tersebut dapat diliha pada konsol Firebase, dimana setiap user akan memiliki informasi berupa email, tanggal pertama kali login, tanggal terakhir login, dan UID (unique id) milik user tersebut.

Sekian bahasan pada postingan kali ini, semoga membantu dalam pengembangan aplikasi di masa depan.


See you around.

Sumber:
https://github.com/firebase/quickstart-android/tree/master/auth
https://firebase.google.com/docs/auth/android/password-auth
https://firebase.google.com/docs/




No comments:

Post a Comment