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
Create a Firebase Messaging Service
@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
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.