2016-07-22 80 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)); 
    } 
相關問題