Cara Membuat Aplikasi Android Dengan Firebase

Dalam pengembangan aplikasi mobile khususnya di Android, tentu kita akan memikirkan tentang hosting, server, mengolah database dan masih banyak lagi. Dewasa ini, salah satu platform yang digunakan oleh developer baik yang profesional maupun pemula untuk mempersingkat pengembangan aplikasi berbasis mobile adalah Firebase. Sejak ditemukan oleh Andrew Lee dan James Tamplin pada tahun 2011, Firebase memberikan produk Realtime Database yang berguna untuk menyimpan lebih banyak data dan sinkronisasi ke banyak pengguna. Kemudian berkembang menjadi layanan penyedia pengembangan aplikasi. Hingga pada Oktober 2014, pihak Google mengakuisisi layanan pengembang aplikasi ini dan mengembangkan berbagai fitur sampai pada akhirnya diperkenalkan pada tahun 2016. Jadi, apa itu Firebase?

Pengertian Firebase

Technology photo created by pressfoto-www.freepik.com

Firebase adalah Cloud Service Provider dan Backend as a Service (BaaS) yang dimiliki oleh Google. Google Firebase adalah solusi yang ditawarkan Google untuk mempermudah pekerjaan Mobile Apps Developer agar bisa fokus mengembangkan aplikasi tanpa perlu memberikan effort yang besar untuk masalah backend. Firebase menyediakan serangkaian alat dan software yang berfungsi untuk pengembangan aplikasi seperti manajemen data, API, integrasi social media dan push notifications. Firebase sangat bagus untuk digunakan Apps Developer karena kecepatannya yang real time dan responsif. Selain itu, kelebihan Firebase lainnya yaitu Firebase memiliki banyak SDK yang memungkinkan untuk mengintegrasikan layanan ini dengan Android, iOS, JavaScript, Java, Objective-C, swift dan Node.js. Data yang disimpan di Firebase menggunakan JSON, sehingga mempermudah pengguna dalam membaca datanya. Firebase cenderung mudah untuk digunakan karena tampilan website Firebase yang user-friendly dan dokumentasi yang cukup mudah untuk dipahami. Contoh aplikasi dengan Firebase antara lain Alibaba.com, Trivago, Duolingo dan Wattpad.

Ada 3 pilihan layanan yang tersedia di Firebase, yaitu:

  1. Spark: layanan ini dapat digunakan secara gratis
  2. Flame :  pengguna dikenakan biaya $25/bulan untuk menggunakan layanan ini
  3. Blaze: pengguna dikenakan biaya sesuai dengan pemakaian untuk menggunakan layanan ini

Fungsi Firebase

Technology photo created by pressfoto-www.freepik.com

Firebase memiliki beberapa fungsi berdasarkan fitur yang dimiliki. Lima di antaranya yaitu:

1. Analytics

Fitur ini berfungsi untuk keperluan mengoleksi data yang bervariasi dan reporting perangkat Android/iOS. Fitur Firebase Analytics bisa memberikan kemudahan bagi Apps Developer untuk membuat segmentasi pengguna berdasarkan fitur apa saja yang sering mereka pakai. Salah satu contohnya adalah kita dapat melihat bagian mana dari aplikasi kita yang paling sering digunakan user. Menariknya lagi, fitur ini dapat membuat segmentasi user berdasarkan user attribute. User attribute adalah parameter yang bisa digunakan sebagai filter untuk reporting dan notifikasi.

2. Real-time Database

Realtime Database adalah database yang di-host melalui cloud sehingga mempermudah developer dalam mengelola database dengan skala yang lebih besar. Data disimpan dan dieksekusi dalam bentuk JSON dan disinkronkan secara realtime ke setiap user yang terkoneksi. Saat membuat aplikasi lintas-platform/multiplatform menggunakan SDK Android, iOS, dan juga JavaScript, semua pengguna akan berbagi sebuah instance Realtime Database dan menerima pembaruan data secara serentak dan otomatis. Bahkan, hebatnya lagi aplikasi bisa menyimpan data secara lokal dan tetap responsif ketika tidak ada akses internet, kemudian melakukan sync data secara instan setelah mendapatkan akses internet.

3. Authentication

Firebase Authentication adalah untuk mengautentikasi pengguna ke aplikasi lewat tampilan interfaces (UI). Nantinya Authentication dapat memudahkan pengguna untuk masuk ke aplikasi yang terintegrasi dengan penyedia identitas gabungan populer lain. Fitur Firebase Authentication merupakan salah satu layanan back-end dengan SDK yang mudah dan siap digunakan untuk mengautentikasi pengguna ke aplikasi serta mengelola pengguna dengan cara yang mudah dan aman. Firebase Authentication mendukung beberapa metode autentikasi seperti menggunakan nomor telepon, email/sandi (password), penyedia identitas gabungan populer (pihak ketiga) seperti Google, Facebook, dan sebagainya. Jadi dengan menggunakan fitur ini kita bisa membuat login menggunakan gmail, facebook, twitter dan lainnya.

4. Cloud Firestore

Cloud Firestore merupakan database yang bersifat fleksibel dan terukur untuk pengembangan perangkat seperti seluler, web, dan server di Firebase dan Google Cloud Platform. Cloud Firestore membuat data tetap terkoneksi di aplikasi user melalui listener realtime dan menawarkan layanan secara offline untuk aplikasi seluler dan web. Dengan begitu, developer dapat membuat aplikasi yang powerfull, responsif, dan mampu bekerja tanpa bergantung pada latensi koneksi internet.

5. Hosting

Firebase juga menyediakan layanan hosting yang mudah digunakan untuk semua dokumen statis. Hanya dengan satu instruksi, developer dapat mengimplementasikan aplikasi web serta menyajikan konten statis maupun dinamis ke CDN  (jaringan penayangan konten) global dengan cepat. Firebase juga menggunakan Superstatic (web server statis) yang dapat dijalankan secara lokal untuk testing keseluruhan. Kegunaan Firebase hosting itu sendiri yaitu untuk menayangkan konten menggunakan koneksi aman, cepat dan mendukung Developer mengimplementasikan aplikasi web dan menyajikan konten statis atau dinamis ke jaringan penayangan konten.

Cara Menggunakan Firebase

Business photo created by pressfoto - www.freepik.com

Untuk kamu pemula yang ingin belajar Firebase, pastikan kamu mempersiapkan beberapa tools sebagai berikut.

  • Pastikan Android Studio kamu sudah dalam versi yang paling terbaru
  • API target level 16 (jelly bean) atau yang paling baru
  • Menggunakan Gradle 4.1
  • Gunakan Jetpack (AndroidX) yang telah mencakup: com.android.tools.build:gradle v3.2.1 atau yang terbaru
  • CompileSdkVersion 28 atau yang terbaru
  • Siapkan perangkat fisik atau jalankan emulator untuk menjalankan emulator
  • Masuk kedalam akun Firebase kamu

Setelah semua lengkap, kamu bisa mulai untuk mengikuti Tutorial Firebase “Memulai Firebase Authentication di Android” berikut ini.

- Menghubungkan aplikasi ke Firebase

Tambahkan Firebase ke project Android jika kamu belum melakukannya.

- Menambahkan Firebase Authentication ke aplikasimu

Dengan Firebase Android BoM, deklarasikan dependensi untuk library Android Firebase Authentication dalam file Gradle modul (level aplikasi) (biasanya app/build.gradle).

dependencies {

// Import the BoM for the Firebase platform

implementation platform('com.google.firebase:firebase-bom:26.6.0')

// Declare the dependency for the Firebase Authentication library

// When using the BoM, you don't specify versions in Firebase library dependencies

implementation 'com.google.firebase:firebase-auth'

}

Sekarang, mari kita lanjutkan dengan cara mengautentikasi pengguna.

- Memeriksa status autentikasi saat ini.

1. Deklarasikan instance FirebaseAuth.

private FirebaseAuth mAuth;

2. Dalam metode onCreate(), lakukan inisialisasi instance FirebaseAuth.

// Initialize Firebase Auth

mAuth = FirebaseAuth.getInstance();

3. Saat melakukan inisialisasi Aktivitas kamu, periksa apakah pengguna saat ini sudah login atau belum.

@Override

public void onStart() {

super.onStart();

// Check if user is signed in (non-null) and update UI accordingly.

FirebaseUser currentUser = mAuth.getCurrentUser();

if(currentUser != null){

reload();

}

}

- Mendaftarkan pengguna baru

Buat metode createAccount baru yang menggunakan alamat email dan sandi, jalankan validasi, lalu buat pengguna baru dengan metode createUserWithEmailAndPassword.

mAuth.createUserWithEmailAndPassword(email, password)

.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {

@Override

public void onComplete(@NonNull Task<AuthResult> task) {

if (task.isSuccessful()) {

// Sign in success, update UI with the signed-in user's information

Log.d(TAG, "createUserWithEmail:success");

FirebaseUser user = mAuth.getCurrentUser();

updateUI(user);

} else {

// If sign in fails, display a message to the user.

Log.w(TAG, "createUserWithEmail:failure", task.getException());

Toast.makeText(EmailPasswordActivity.this, "Authentication failed.",

Toast.LENGTH_SHORT).show();

updateUI(null);

}

// ...

}

});

Tambahkan formulir untuk mendaftarkan pengguna baru dengan email dan sandi mereka, dan panggil metode baru ini saat dikirim.

- Membuat pengguna yang ada agar login

Buat metode signIn baru yang menggunakan alamat email dan sandi, validasikan metode tersebut, lalu buat agar pengguna login dengan metode signInWithEmailAndPassword.

mAuth.signInWithEmailAndPassword(email, password)

.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {

@Override

public void onComplete(@NonNull Task<AuthResult> task) {

if (task.isSuccessful()) {

// Sign in success, update UI with the signed-in user's information

Log.d(TAG, "signInWithEmail:success");

FirebaseUser user = mAuth.getCurrentUser();

updateUI(user);

} else {

// If sign in fails, display a message to the user.

Log.w(TAG, "signInWithEmail:failure", task.getException());

Toast.makeText(EmailPasswordActivity.this, "Authentication failed.",

Toast.LENGTH_SHORT).show();

updateUI(null);

// ...

}

// ...

}

});

Tambahkan formulir untuk membuat pengguna login dengan email dan sandi mereka, dan panggil metode baru ini saat dikirim.

- Mengakses informasi pengguna

Jika pengguna berhasil login, kamu dapat memperoleh data akunnya kapan pun dibutuhkan dengan metode getCurrentUser.

FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();

if (user != null) {

// Name, email address, and profile photo Url

String name = user.getDisplayName();

String email = user.getEmail();

Uri photoUrl = user.getPhotoUrl();

// Check if user's email is verified

boolean emailVerified = user.isEmailVerified();

// The user's ID, unique to the Firebase project. Do NOT use this value to

// authenticate with your backend server, if you have one. Use

// FirebaseUser.getIdToken() instead.

String uid = user.getUid();

}

Dengan demikian itu lah penjelasan mengenai Firebase, platform yang memiliki fitur utama untuk meng-outsource pengembangan di sisi back-end sehingga developer bisa berfokus pada pengalaman pengguna melalui front-end development. Firebase dapat menjadi pilihan kamu untuk pengembangan aplikasi berbasis web atau mobile. Apakah kamu tertarik menggunakan Firebase dalam pengembangan aplikasimu?

Share this article: Link copied to clipboard!