Firebase adalah sebuah layanan dari google yang bisa kita gunakan untuk mengembangkan aplikasi realtime. Ada banyak sekali fitur-fitur yang disediakan untuk mempermudah proses pengembangan aplikasi salah satunya yang akan kita bahas pada artikel kali ini yaitu Push Notification. Untuk melakukan push notification kita akan menggunakan Fcm (Firebase Clous Messaging).
Kenapa Menggunakan Firebase
Sebenarnya ada banyak sekali layanan yang bisa kita gunakan untuk membuat realtime aplikasi android seperti rabbitmq. Tapi karena firebase adalah produk dari google sendiri dan tentu saja akan lebih mudah mengimplementasikannya di aplikasi android. Selain itu, menggunakan firebase tidak akan membuat aplikasi yang kita buat menjadi boros batrai dibanding kita membuat websocket sendiri secara manual, karena tidak membuat koneksi tcp baru di device android kita.
advertisement
Membuat Project Firebase
Untuk mengintegerasikan firebase dengan aplikasi android maka kita perlu SHA Key dan file json bernama google-service.json yang di dapat dari firebase project. Silahkan kalian ikut langkah-langkahnya.
- Buka firebase.google.com dan jika kalian belum punya akunnya silahkan daftar terlebih dahulu (gratis) dan jika sudah punya kalian bisa langsung login dasboard consolenya.
- Silahkan kalian buat project baru dengan nama bebas. Dan untuk sementara tidak perlu mengaktifkan google analyticnya
- Kemudian kalian klik logo icon android untuk menambahkan service firebase ke aplikasi android.
- Silahkan kalian isi nama paket android sesuai dengan package android project kita dan berikan aplikasinya. untuk kode SHA kita lewatkan dulu. Setalah itu silahkan klik daftarkan aplikasi
- Silahkan download file goog-service.json yang sudah di generate tadi dan tempatkan di dalam folder app project android kalian, seperti gambar berikut
Mengintegrasikan Firebase Dengan Aplikasi
Untuk mengintegrasikan firebase maka kita butuh beberapa library package dari google repositorie, seperti com.google.gms.google-services. Buka project android studio kalian dan lakukan step-step berikut,
- Buka build.gradle di level project kemudian tambahkan kode berikut
buildscript { repositories { // Check that you have the following line (if not, add it): google() // Google's Maven repository } dependencies { ... // Add this line classpath 'com.google.gms:google-services:4.3.3' } } allprojects { ... repositories { // Check that you have the following line (if not, add it): google() // Google's Maven repository ... } }
- Kemudian buka build.grade level aplikasi (module) dan tambahkan kode berikut
apply plugin: 'com.android.application' // Add this line apply plugin: 'com.google.gms.google-services' dependencies { implementation 'com.google.firebase:firebase-messaging:19.0.1' }
Dan silahkan kalian klik Sync Now (Butuh koneksi internet).
Membuat Notification
- Buat sebuah class yang mengimplementasikan FirebaseMessagingService,
package com.zain.tutorialgson import com.google.firebase.messaging.FirebaseMessagingService import com.google.firebase.messaging.RemoteMessage class MyFireBaseNotification : FirebaseMessagingService(){ override fun onMessageReceived(p0: RemoteMessage?) { super.onMessageReceived(p0) } override fun onNewToken(p0: String?) { super.onNewToken(p0) } }
- Kemudian di dalam callback methode onMessageReceived tambahkan code untuk mencreate notifikasi, sehingga codenya menjadi seperti berikut,
override fun onMessageReceived(p0: RemoteMessage?) { super.onMessageReceived(p0) val notificationIntent = PendingIntent.getActivity(this, 0, Intent(this, MainActivity::class.java), PendingIntent.FLAG_UPDATE_CURRENT) val notificationBuilder = NotificationCompat.Builder(this, "channel_id") .setContentTitle(p0?.notification?.title) .setContentIntent(notificationIntent) .setContentText(p0?.notification?.body) .setPriority(NotificationCompat.PRIORITY_DEFAULT) .setStyle(NotificationCompat.BigTextStyle()) .setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION)) .setAutoCancel(true) val notificationManager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager notificationManager.notify(0, notificationBuilder.build()) }
- Kemudian dibagian manifiest silahkan daftarkan servicenya
<service android:name=".MyFireBaseNotification"> <intent-filter> <action android:name="com.google.firebase.MESSAGING_EVENT"/> </intent-filter> </service>
- Berlangganan Topic(Opsional)
Kalian bisa memfilter notifikasinya berdasarkan topik apa yang kalian subcribe. Tulis code berikut di activity kalian,
FirebaseApp.initializeApp(this) FirebaseMessaging.getInstance().subscribeToTopic("deretcode") //THis for by topic .addOnCompleteListener { task -> var msg = "success" if (!task.isSuccessful) { msg = "gagal" } Log.d(TAG, msg) } mPresenter.checkSessionStatus()
Penjelasan: Code subscribeToTopic("deretcode") akan mebuat aplikasimu hanya akan menampilkan notifikasi dengan topic "deretcode" saja jika push notifaksinya berdasarkan topik tertentu.
Test Aplikasi
Ada dua cara pengetesan yang bisa di lakukan apakah aplikasi android kita sudah bisa menampilkan notifikasi atau tidak, pertama langsung dari firebase dan yang kedua menggunkan aplikasi penguji api service seperti postman.
advertisement
1. Langsung dari firebase
- Klik Clud Messaging dan klik Send your first message
- Isi Judul dan isi notifikasi dan klik tombol berikutnya.
- Kemudian atur target clientnya, bisa berdasarkan Aplikasi atau topik
- Atur penjadwalan, kapan push notifikasi di lakukan
- Klik tinjau dan silahkan publikasi
2. Menggunakan Postman
- Silahkan kalian buka aplikasi postman atau jika belum install silahkan download dan install terlebih dahulu postman nya.
- Buat page request baru dan atur seperti berikut
Url : https://fcm.googleapis.com/fcm/send
Methode : Post
Header Key1 : Content-Type dan Value: application/json
Header Key1 : Authorization dan Value: key=<server-key-fcm-mu>
Cara mendapatkan api key, seperti gambar berikut - Klik tab Body, pilih raw dan pilih Json type kemudin isi format jsonnya seperti berkut,
{ "to": "/topics/NAMA_TOPICNYA", "data": { "title": "Judul Notif", "message": "Isi Notifikasi", "sound": "default", "type": 1 } }
- Kemudian kalian bisa klik tombol send.
Sampai disini harusnya aplikasi android kalian sudah bisa menampilkan notifikasinya. Kalo belum silahkan kalian periksa lagi step by step mungkin ada yang terlewatkan, atau bisa kalian tanyakan di kolom komentar.
advertisement
Sekian dulupostingan kali ini. Jangan lupa di share jika kalian merasa artikel ini bermanfaat, kalau ada pertanyaan silahkan tulis di kolom komentar. Good Luck! :)
Silahkan berkomentar dengan baik dan bijak!