FCM 数据有效负载以 android 格式接收,而不是 json 格式



我从 firebase 获取的数据有效负载不是 json 格式,而是按以下格式获取自定义键值对:

Data Payload:{image=https://www.xxxx.xxx/get-profile-picture, message=This is a test message., senderName=Mathew John}

我必须使用 Json 解析来解析数据以进行进一步处理。这是我的代码:

@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
    if (remoteMessage.getData().size() > 0) {
        Log.e(TAG, "Data Payload: " + remoteMessage.getData().toString());
        try {
            JSONObject json = new JSONObject(remoteMessage.getData().toString());
            String title = remoteMessage.getData().get("senderName");
            System.out.println("raja" + title);
            String msg = remoteMessage.getData().get("message");
            System.out.println("raja" + msg);
            sendMessage(msg,title);
        } catch (JSONException e) {
            e.printStackTrace();
        }
    }
}

我从火力基地获取的数据有效负载不是 json 格式

Yes,它的行为符合预期。

因为数据负载包含custom key-value pairs而不是JSON格式

我必须使用Json解析来解析数据以进行进一步处理。

您需要使用 Map<String, String> 将数据有效负载转换为JSONObject

检查以下示例

示例代码

Map<String, String> params = remoteMessage.getData();
JSONObject object = new JSONObject(params);
Log.e("JSON_OBJECT", object.toString());

相关内容

  • 没有找到相关文章

最新更新