Android remoteMessage.getMessageType在onMessageReceived中返回null

Android remoteMessage.getMessageType在onMessageReceived中返回null,android,firebase,firebase-cloud-messaging,Android,Firebase,Firebase Cloud Messaging,我不确定应该返回什么getMessageType()。但它似乎不太可能返回数据或通知,因为。谢谢。 实际上,我找到了一种检查消息类型本身的方法。以下内容适用于我,无需使用getMessageType Map data=remoteMessage.getData(); RemoteMessage.Notification Notification=RemoteMessage.getNotification() 从文档中可以看出,这是一个可以在发送消息和使用SDK时设置的参数 publicmotem

我不确定应该返回什么
getMessageType()
。但它似乎不太可能返回
数据
通知
,因为。

谢谢。 实际上,我找到了一种检查消息类型本身的方法。以下内容适用于我,无需使用getMessageType

Map data=remoteMessage.getData(); RemoteMessage.Notification Notification=RemoteMessage.getNotification()


从文档中可以看出,这是一个可以在发送消息和使用SDK时设置的参数

publicmotemessage.Builder setMessageType(字符串messageType)


但是,当使用Firebase REST API发送消息时,我还没有看到指定消息类型的功能。

您应该这样尝试

    if (data.isEmpty()) { // message type is notification.
        parseDataMessage(remoteMessage);
    } else { // message type is data.
        parseNotificationMessage(remoteMessage);
    }

使用此代码onMessageReceived它对我有效:

  if(getIntent().getExtras() != null && getIntent().getExtras().get("your_data_key") != null) {
 String strNotificaiton = getIntent().getExtras().get("your_data_key").toString(); }

谢谢你,弗兰克。我只是想出了一个解决办法,并在不使用getMessageType()的情况下发布了我的答案。
  if(getIntent().getExtras() != null && getIntent().getExtras().get("your_data_key") != null) {
 String strNotificaiton = getIntent().getExtras().get("your_data_key").toString(); }
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
    Log.e(TAG, "From: " + remoteMessage.getFrom());

        if (remoteMessage == null)
        return;

    //if message contains a notification payload.
        if (remoteMessage.getNotification() != null) {
            Log.e(TAG, "Notification Body: " + remoteMessage.getNotification().getBody());
            handleNotification(remoteMessage.getNotification().getBody());
        }

    //if message contains a data payload.
        if (remoteMessage.getData().size() > 0) {
            Log.e(TAG, "Data Payload: " + remoteMessage.getData().toString());

            try {
                JSONObject json = new JSONObject(remoteMessage.getData().toString());
                handleDataMessage(json);
            } catch (Exception e) {
                Log.e(TAG, "Exception: " + e.getMessage());
            }
        }
}