2016-07-27 49 views
0

您好,我正在构建一个应用程序,使用Firebase上游消息。但是,当我点击发送上游味精时,我必须在该消息中放入一些对象。这是我的功能,我有一个模型:如何将模型转换为上游消息的字符串?

public void getObjectEvent(EventModel data){ 
    Map dataa = new HashMap(); 
    dataa.put("message","Upstream message."); 
    Gson datajson = new Gson(); 
    datajson.toJson(data); 
    FirebaseMessaging fm=FirebaseMessaging.getInstance(); 
    fm.send(new RemoteMessage.Builder(SENDER_ID + "@gcm.googleapis.com") 
      .addData("action","message") 
      .addData("data","{\"message\":\"Upstream Message\"}") 
      .addData("object", data) 
      .build()); 


} 

在这一部分:

.addData("object", data) 

它给了我一个错误,因为该“数据”必须是字符串,但对我的需要我必须发送对象(事件模型) 任何人都可以帮助我吗?

+0

'data.toString()' –

回答

2

保持返回的toJson值:

String json = datajson.toJson(data); 

而且JSON字符串设定为addData

.addData("object", json) 

Finaly你的方法是这样的:

public void getObjectEvent(EventModel data){ 
    Map dataa = new HashMap(); 
    dataa.put("message","Upstream message."); 
    Gson datajson = new Gson(); 
    String json = datajson.toJson(data); 
    FirebaseMessaging fm=FirebaseMessaging.getInstance(); 
    fm.send(new RemoteMessage.Builder(SENDER_ID + "@gcm.googleapis.com") 
      .addData("action","message") 
      .addData("data","{\"message\":\"Upstream Message\"}") 
      .addData("object", json) 
      .build()); 
} 
1

试试这个:

String jsonData = datajson.toJson(data); 

    /// 
    .addData("object", jsonData) 

由此,您可以将模型作为JSONObject发送。