Push-уведомления FCM отображают необработанный json даже после реализации сообщений dats

Ниже приведен json, который я пытаюсь отправить с консоли Firebase.

{
    "message": {
        "token": "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
        "data": {
            "Nick": "Mario",
            "body": "great match!",
            "Room": "PortugalVSDenmark"
        }
    }
}

Мой код в onMessageReceived выглядит следующим образом

    @Override
    public void onMessageReceived(RemoteMessage remoteMessage) {

        Log.d(TAG, "From: " + remoteMessage.getFrom());

        Log.d(TAG, "Message data payload: " + remoteMessage.getData());

        // Check if message contains a data payload.
        if (remoteMessage.getData().size() > 0) {
            Log.d(TAG, "Message data payload: " + remoteMessage.getData());

            String name = remoteMessage.getData().get("Nick").toString();
            String body = remoteMessage.getData().get("body").toString();
            String room = remoteMessage.getData().get("Room").toString();

            String messageBody = name
                    + " "
                    + body
                    + " "
                    + room;

            NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
                    .setContentTitle("Zone")
                    .setContentText(messageBody)
                    .setAutoCancel(true)
                    .setSmallIcon(R.mipmap.ic_launcher)
                    /*Notification with Image*/;
            NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
            notificationManager.notify(0 /* ID of notification */, notificationBuilder.build());
        }
    }

Каждый раз, когда я отправляю вышеуказанный json из консоли firebase, он даже не входит в условие if, потому что remoteMessage.getData().size() не больше нуля.

Почему это происходит, хотя я отправляю полезные данные?

Также, когда уведомление получено, я хочу создать предложение из необработанного json и отобразить его. Например, "Нику понравилась картинка"

Когда приходит уведомление, отображается только json.

Долго с этим боролся.

Любая помощь будет оценена. Спасибо


comment
stackoverflow.com/questions/49766581/   -  person AskNilesh    schedule 21.06.2018
comment
обратитесь к этому ответу   -  person Rutvik Bhatt    schedule 21.06.2018


Ответы (1)


Попробуй это.

String nick,body,room, fullString;

if(!remoteMessage.getData().isEmpty()){
        Log.d(TAG, "Notification Message Data: " + remoteMessage.getData());
        nick=remoteMessage.getData().get("Nick");
        body=remoteMessage.getData().get("body");
        room=remoteMessage.getData().get("Room");
        Log.d(TAG, "All data: " + nick+","+body+","+room);
        fullString = "Anything you want"+nick+"anything";
        //then use the string anywhere
    }
person Jinesh Malavia    schedule 21.06.2018