|

|  How to Implement Push Notifications Using Firebase Cloud Messaging in Android

How to Implement Push Notifications Using Firebase Cloud Messaging in Android

October 31, 2024

Learn to implement push notifications on Android with Firebase Cloud Messaging. Follow our step-by-step guide for seamless integration and improved user engagement.

How to Implement Push Notifications Using Firebase Cloud Messaging in Android

 

Set Up Firebase Cloud Messaging

 

  • Ensure you have added the necessary Firebase dependencies to your project by updating your app's `build.gradle` file. You should include the Firebase Cloud Messaging dependency:

    ```gradle
    implementation 'com.google.firebase:firebase-messaging:23.0.0'
    ```

    Register your app with Firebase and download the `google-services.json` file, placing it in your app's `app` directory if not done already.</li>
    

 

Configuring Firebase in Your App

 

  • Initialize Firebase in your application by calling `FirebaseApp.initializeApp(this);` in your `onCreate()` method within your main `Application` class or the main activity:
  • ```java
    @Override
    public void onCreate() {
    super.onCreate();
    FirebaseApp.initializeApp(this);
    }
    ```

 

Create a Firebase Messaging Service

 

  • Create a class that extends `FirebaseMessagingService`. This class handles the reception of messages.
  • ```java
    public class MyFirebaseMessagingService extends FirebaseMessagingService {

      @Override
      public void onMessageReceived(RemoteMessage remoteMessage) {
          // Handle FCM messages here.
          if (remoteMessage.getNotification() != null) {
              // Since the notification is available, handle it here.
              sendNotification(remoteMessage.getNotification().getBody());
          }
      }
    
      private void sendNotification(String messageBody) {
          // Create and display a notification containing the received FCM message.
          NotificationCompat.Builder notificationBuilder = 
              new NotificationCompat.Builder(this, "default")
              .setContentTitle("FCM Message")
              .setSmallIcon(R.drawable.ic\_notification)
              .setContentText(messageBody)
              .setAutoCancel(true)
              .setPriority(NotificationCompat.PRIORITY\_HIGH);
    
          NotificationManagerCompat notificationManager = 
              NotificationManagerCompat.from(this);
          notificationManager.notify(0, notificationBuilder.build());
      }
    

    }
    ```

 

Add Permissions and Service Declaration to Manifest

 

  • Ensure you include necessary permissions and the service declaration in your `AndroidManifest.xml`:
  • ```xml


    <application
    android:name=".MyApplication"
    ...>







    ```

 

Obtain Firebase Registration Token

 

  • Obtain the Firebase registration token when needed to identify your app on a device:
  • ```java
    FirebaseMessaging.getInstance().getToken()
    .addOnCompleteListener(new OnCompleteListener() {
    @Override
    public void onComplete(@NonNull Task task) {
    if (!task.isSuccessful()) {
    Log.w("FCM", "Fetching FCM registration token failed", task.getException());
    return;
    }

              // Get new FCM registration token
              String token = task.getResult();
              Log.d("FCM", "FCM registration token: " + token);
    
              // If you want to send messages to this application instance
              // or manage this apps subscriptions on the server side, send the
              // FCM registration token to your app server.
          }
      });
    

    ```

 

Handling Notifications

 

  • When a message is received in the `onMessageReceived()` callback, extract the necessary data and display a notification. The provided `sendNotification()` method demonstrates how a simple notification can be created using the data from the message.
  • Customize the notification as necessary for your app's requirements, potentially including actions, larger icons, or expanded layouts.

 

Test Notifications

 

  • To test the notifications, use Firebase Console or server-side integration to send a message. Ensure the message has either a notification payload URL, or data payload if you want to handle the messaging component directly in your app's logic.
  • Use tools like Postman to simulate server push messages for testing purposes if you’re handling data messages rather than notifications directly.