Implementing Firebase Cloud Messaging (FCM) into your Android App

Last month I has an article about Firebase, that content is Firebase Authentication. To continue about topic Google Firebase today I have a new article write about Firebase Cloud Messaging (FCM). I will implement Firebase Cloud Messaging into exist project of the last article. If you don’t know how to creates Firebase project, add Firebase into Android project, you can read at here.

The following steps will provide step by step guide to implement FCM to Android app.

Step 1: Add FCM dependency to your app-level build.gradle file

dependencies {  
  compile 'com.google.firebase:firebase-messaging:9.4.0'
}

Step 2: Create services for your app

You must create two services for your app to use FCM. The first service that extends FirebaseMessagingService. The second service that extends FirebaseInstanceIdService.

I created two file is MyFirebaseMessagingService and MyFirebaseInstanceIdService.

create service files for FCM

Step 3: Edit your app manifest

After create service files for your app, you must be add this to your app manifest like following

<service android:name=".fcm.MyFirebaseMessaginService">  
  <intent-filter>
    <action android:name="com.google.firebase.MESSAGING_EVENT"/> </intent-filter>
</service>

<service android:name=".fcm.MyFirebaseInstanceIdService">  
  <intent-filter>
    <action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
  </intent-filter>
</service>  

Step 4: Retriever the current registration token

When you need to retriever the current token, call

FirebaseInstanceId.getInstance().getToken()  

This method will returns null if the token has not yet been generated. Sometime the registration token may changed when:

  • The app deletes Instance ID
  • The app is restored on a new device
  • The user uninstall/reinstall the app
  • The user clears app data

In this case you must monitor token generation by method onTokenRefresh that override method in MyFirebaseInstanceIdService.

onTokenRefresh

Step 5: Receive message

You can handling message by method onMessageReceived that override method in MyFirebaseMessagingService
onMessageReceived

Step 6: Test notification for your app

Open your project on Google Firebase, you can send a message to your device to test your code.

Send messageSend message

This article is a basic sample to show to you how to add Google Firebase Cloud Messaging to your Android app. If you have any question you can comment in this post. Thank for read my article and i hope you like it!

You can get complete code at github!