Setup Firebase Cloud Messaging
Setup Firebase Cloud Messaging
Firebase Cloud Messaging (FCM) adalah solusi server push untuk aplikasi Android. Server push maksudnya adalah fitur yang kita gunakan apabila aplikasi server kita ingin mentrigger aplikasi mobile.
Google menyediakan fasilitas FCM yang bisa digunakan untuk aplikasi Android maupun iOS. Contoh skema penggunaannya dapat dilihat pada gambar berikut
Untuk bisa menggunakan FCM, ada beberapa langkah yang harus dilakukan:
- Login dengan Google account di browser
- Masuk ke Firebase Console
- Membuat project
- Menyambungkan project android kita ke project di Firebase Console
- Membuat kode program di aplikasi Android untuk mendapatkan FCM token. FCM Token ini adalah identifier untuk perangkat dimana aplikasi kita berjalan.
- Membuat kode program di aplikasi Android untuk menerima dan menangani message yang datang.
- Mencatat Server Key (yang nantinya akan digunakan untuk mengirim message)
- Membuat kode program di aplikasi server untuk mengirim message
Setup FCM di Aplikasi Android
Bila kita menggunakan Android Studio Versi 2.2 ke atas, langkah 1 - 4 sudah disediakan alat bantunya. Kita bisa akses di menu Tools > Firebase
Begitu diklik, maka akan muncul Firebase Assistant. Selanjutnya kita buka menu Cloud Messaging.
Kita akan mendapati langkah-langkah setupnya.
Mulai dari langkah pertama, klik Connect your app to firebase. Browser akan dibukakan untuk kita dan kita disuruh login dengan Google Account. Apabila kita punya beberapa Google account, maka kita akan disuruh memilih akun mana yang ingin digunakan.
Setelah kita pilih, maka akan ada konfirmasi ijin akses buat Android Studio. Klik saja Accept.
Kita akan mendapatkan pesan sukses.
Berikutnya, kita akan disajikan pilihan apakah akan membuat project Firebase yang baru, atau menggunakan project yang sudah ada.
Dalam hal ini saya memilih membuat project baru. Nama project sudah diusulkan oleh Android Studio, yaitu disamakan dengan nama project android kita. Begitu kita klik OK, maka Android Studio akan berusaha membuat project di Firebase. Aktivitasnya bisa kita pantau di Event Log
Proses ini akan menghasilkan file google-services.json
dalam folder project Android kita.
File ini berisi konfigurasi dan otentikasi agar aplikasi android kita bisa terhubung dengan Firebase. Setelah selesai, maka langkah pertama akan dinyatakan sukses, ditandai dengan icon berwarna hijau.
Berikutnya, langkah kedua, kita akan menambahkan library yang dibutuhkan oleh Google services ke dalam project Android kita.
Setelah kita OK, maka file build.gradle
kita akan diedit oleh Android Studio.
Langkah kedua selesai, ditandai dengan icon hijau di nomer dua.
Selanjutnya, kita perlu membuat kode program untuk menangani proses registrasi. Cara membuatnya sudah dijelaskan oleh Firebase Assistant. Tinggal kita ikut saja.
Class di atas akan melakukan registrasi aplikasi kita ke FCM dan mendapatkan token. Token ini harus kita daftarkan ke aplikasi server kita, agar kita bisa mengirim data ke user tertentu. Nantinya kita kirim token berpasangan dengan user id, agar bisa diidentifikasi device mana milik user mana.
Class tadi juga harus didaftarkan ke AndroidManifest.xml
Langkah terakhir di sisi Android adalah membuat service untuk menerima FCM message. Cara membuatnya juga sudah ditunjukkan oleh Firebase Assistant. Tinggal kita ikuti saja.
Sama seperti sebelumnya, service inipun harus kita daftarkan ke AndroidManifest.xml
.
Setup di Aplikasi Server
Untuk bisa mengirim message, kita harus memiliki API Key server. Masuk ke Firebase Console.
Kita akan melihat bahwa project kita sudah terbentuk. Klik project tersebut.
Untuk melihat API key, klik tombol roda gigi, kemudian klik Project Settings.
Kita akan mendapati layar setting project. Klik tab Cloud Messaging
Nah, kita bisa mengcopy server key yang tampil di layar.
Mengirim Message
Untuk mengirim message, kita bisa gunakan aplikasi yang bisa mengirim HTTP Request. Saya biasanya menggunakan Rest Console.
Pertama, kita isikan target URLnya.
Kemudian, kita isi body request
Pastikan content type yang digunakan adalah application/json
.
Body messagenya sebagai berikut
{ "data": {
"nama": "endy",
"no_peserta": "123"
},
"to" : "ethAjHSkZac:APA91bHatrwLuNuGOWvRvaINJc3S2hIHczl2dU73kk2O9Dhf4CEJO99zINWgSENaBPy_6mm6L74TlF3IeqlZtd1HLy6Zf-RPxWuetwdQsPETw--Nq4o_nGOwjffhv42JegG8F8HvkVBu"
}
Isi field to
adalah registration token yang didapat aplikasi android kita pada saat dijalankan. Untuk aplikasi saya, nilai token ini saya tampilkan di log
public void onTokenRefresh() {
// Get updated InstanceID token.
String refreshedToken = FirebaseInstanceId.getInstance().getToken();
// TODO: Implement this method to send any registration to your app's servers.
sendRegistrationToServer(refreshedToken);
}
private void sendRegistrationToServer(String token) {
Log.d(TAG, "Refreshed token: " + token);
}
Sehingga token yang didapat bisa dilihat di Android Monitor.
Kemudian, kita isikan Authorization
dengan key yang didapat dari Firebase Console tadi.
Jangan lupa untuk memberikan prefix key:
sebelum nilai keynya.
Lakukan HTTP Post, dan FCM akan memberikan response seperti ini
Selanjutnya, kita bisa lihat messagenya diterima aplikasi Android kita dengan melihat ke Android Monitor.
Penutup
Demikianlah cara setup Firebase Cloud Messaging agar bisa digunakan di aplikasi Android. Selamat mencoba, semoga bermanfaat.