8

I'm trying to implement firebase notifications. But I have trouble finding any documentation on how to retrieve custom data from firebase notification.

Firebase console

But in in code how to get the custom key.

enter image description here

I'm using FirebaseMessagingService.onMessageReceived to get the message data.

@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
    // TODO(developer): Handle FCM messages here.
    // If the application is in the foreground handle both data and notification messages here.
    // Also if you intend on generating your own notifications as a result of a received FCM
    // message, here is where that should be initiated. See sendNotification method below.
    Log.d(TAG, "From: " + remoteMessage.getFrom());
    Log.d(TAG, "Notification Message Body: " + remoteMessage.getNotification().getBody());
}
Isuru
  • 3,818
  • 13
  • 49
  • 64

2 Answers2

33

You can check your custom data using:

for (Map.Entry<String, String> entry : remoteMessage.getData().entrySet()) {
    String key = entry.getKey();
    String value = entry.getValue();
    Log.d(TAG, "key, " + key + " value " + value);
}

To get specific key:

String value = remoteMessage.getData().get("<YOUR_KEY>");
Chintan Soni
  • 24,761
  • 25
  • 106
  • 174
6

Let A be your key, then you can easily parse this value by using the following code.

JSONObject json = new JSONObject(remoteMessage.getData());
    Iterator itr = json.keys();
    while (itr.hasNext()) {
    String key = (String) itr.next();
           if (key.equals("A")) {
                flag = json.getString(key);
           }
           Log.d(TAG, "..." + key + " => " + json.getString(key));
    }
lal
  • 1,113
  • 1
  • 11
  • 17