2016-07-22 67 views
5

我正在尝试实施Firebase通知。但是我无法找到任何有关如何从Firebase通知中检索自定义数据的文档。如何从android firebase通知中获取自定义数据?

Firebase console

但在代码如何获得自定义键。

enter image description here

我使用FirebaseMessagingService.onMessageReceived得到的消息数据。

@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()); 
} 

回答

20

可以使用检查您的自定义数据:

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

要获取特定的键:

String value = remoteMessage.getData().get("<YOUR_KEY>"); 
+0

我使用火力的反应原生的Android,在那里我应该提到这一点的循环。 ...在MyFirebaseMessagingService.java中? @Chintan Soni – Vijay

5

让A为您的密钥,然后您可以使用以下代码轻松解析此值。

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)); 
    } 
相关问题