Belajar Cara Menerima Pesan di Firebase Cloud Messaging


Assalamualaikum Warahmatullahi Wabarakatuh.

Ada 2 cara penerimaan pesan melalui Firebase Cloud Messaging, yaitu pesan notifikasi dikirim pada saat aplikasi didepan layar dan pada saat aplikasi dibelakang layar, untuk penerimaan pesan dibelakang layar, kita sudah membahasnya pada tutorial sebelumnya. Selanjutnya kita akan belajar, bagaimana cara agar aplikasi client menerima pesan notifikasi didepan layar atau pada saat user menjalanan aplikasi tersebut.


Contonya pesan notifikasi didepan layar, seperti aplikasi Chat, dimana saat user menerima pesan dari user lainnya, maka akan muncul notifikasi pada bagian Chat listnya, bisa perupa pesan singkat yang dikirimkan user, atau berupa bulatan berwarna merah atau hijau.

Materi lainnya yang direkomendasikan:


Disini kita akan membuat program sederhana, yaitu, menampilkan Pesan Notifikasi dari server FCM pada Logcat, saat aplikasi berjalan didepan layar.

Belajar Cara Menerima Pesan di Firebase Cloud Messaging

1) Pertama, tambahkan Firebase kedalam Project Aplikasi,Untuk Tutorialnya kalian bisa lihat Disini

2) Selanjutnya buka file build.gradle (module:app), tambahkan library FCM berikut ini kedalam dependencies.
implementation 'com.google.firebase:firebase-messaging:11.8.0' 
3) Buka AndroidManifest.xml, lalu tambahkan permission berikut ini.
<uses-permission android:name="android.permission.INTERNET" />
4) Karena disini kita akan menggunakan token untuk mengirim pesan pada perangkat spesifik, maka dari itu Buat class baru, berinama, "MyFirebaseInstanceIdService", yang mengextends FirebaseInstanceIdService, untuk mendapatkan token penaftaran.
package cianjur.developer.net.firebaseexample;

import android.util.Log;

import com.google.firebase.iid.FirebaseInstanceId;
import com.google.firebase.iid.FirebaseInstanceIdService;

public class MyFirebaseInstanceIdService extends FirebaseInstanceIdService {

    final String TAG = MyFirebaseInstanceIdService.class.getSimpleName();

    @Override
    public void onTokenRefresh() {
        //Mendapatkan Instance dan Memperoleh Token
        String refreshedToken = FirebaseInstanceId.getInstance().getToken();

        //Menampilkan Token pada Log
        Log.d(TAG, "Token Saya : "+ refreshedToken);

        //Method berikut ini digunakan untuk memperoleh token dan mennyimpannya ke server aplikasi
        sendRegistrationToServer(refreshedToken);
    }

    private void sendRegistrationToServer(String refreshedToken) {
        //Disini kita biarkan kosong saja
    }
}
5) Selanjutnya buka File AndroidManifest.xml, disini kita perlu mendaftarkan class MyFirebaseInstanceIdService, untuk menangani pembuatan, rotasi, dan update token pendaftaran.

Didalam Tag <application>, masukan baris kode berikut ini.
<service
    android:name=".MyFirebaseInstanceIdService">
    <intent-filter>
        <action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
    </intent-filter>
</service>
6) Jalankan Project tersebut, untuk mengecek token yang dihasilkan FCM pada bagian logcat.


7) Setelah kita mendapatkan token, selanjutnya kita buat class baru bernama "MyFirebaseMessagingService" yang mengekstends FirebaseMessagingService, untuk menagani pesan yang diterima oleh client.
package com.wildan.basajanmessenger.fcm;

import android.util.Log;

import com.google.firebase.messaging.FirebaseMessagingService;
import com.google.firebase.messaging.RemoteMessage;

public class MyFirebaseMessagingService extends FirebaseMessagingService {

    private static final String TAG = MyFirebaseMessagingService.class.getSimpleName();

    @Override
    public void onMessageReceived(RemoteMessage remoteMessage) {
        //Memeriksa apakan pesan berisi muatan pemberitahuan
        if(remoteMessage.getNotification() != null){
            Log.d(TAG, "Notifikasi: "+remoteMessage.getNotification().getBody());
        }
    }
}
Didalam class tersebut, kita menggunakan method turunan dari FirebaseMessagingService, yaitu onMessageReceived(), digunakan untuk menangani kejadia saat client menerima pesan dari server.
pesan notofikasi tersebut akan kita tampilkan pada Logcat.

9) Daftarkan class tersebut pada AndroidManifest.xml, dengan intent-filter "com.google.firebase.INSTANCE_ID_EVENT", agar class tersebut dapat menangkap pesan di latar depan aplikasi.
<service
    android:name=".fcm.MyFirebaseMessagingService">
    <intent-filter>
        <action android:name="com.google.firebase.MESSAGING_EVENT"/>
    </intent-filter>
</service>
10) Selanjutnya buka Firebase Console, pada bagian Cloud Messaging, kita buat pesan baru, pesan tersebut akan kita kirim pada perangkat spesifik, dengan menggunakan Token.


11) Lalu jalankan project tersebut, dan lihat hasilnya pada bagian Logcat, jika muncul pesan yang kita kirim, itu artinya berhasil.

Demo:


Terimakasih atas kunjungannya, semoga tutorial yang saya berikan bisa bermanfaat untuk kalian semua, selebihnya, mohon maaf bila ada kesalahan.

Wassalamualaikum Warahmatullahi Wabarakatuh.

Wildan M Athoillah
Wildan M Athoillah Blogger dan spesialis pembuat aplikasi android.