私はFirebaseプッシュ通知を実装しています。私はremoteMessage.getData()
を使用してプッシュ通知を取得しています。 forループでMap.Entryを使用してデータを取得しています。示されているように、キーと値のペアは次のようになります。 key:body、value:{JSON Object};キー:タイトル、値:Placebid。 私が望むのは、文字列 "title"でキーを取得し、 "Placebid"であるかどうかをチェックし、そうであればJSONを持つキー "body"の値を取得します。どのようにループの中でこれを行うには?私は試しましたが、JSONの価値を得られませんでした。forループ内のMap.Entryの文字列を確認してください
//onMessageReceived
if(remoteMessage.getData().size() > 0){
try {
System.out.println("sammy_getData "+remoteMessage.getData());
for (Map.Entry<String, String> entry : remoteMessage.getData().entrySet()) {
String key = entry.getKey();
String value = entry.getValue();
Log.d("sammy_ ", "key: " + key + "\n value: " + value);
System.out.println("sammy_key: "+key+"\n value: "+value);
if(key.contains("title") && value.contains("Placebid")){
JSONObject obj = new JSONObject(value);
String jobid = obj.getString("job_id");
String username = obj.getString("username");
String msg = "bided on your job.";
String msgbody = username + " " + msg;
sendnotificationbid(jobid,msgbody);
}
}
} catch (JSONException e) {
e.printStackTrace();
}
}
//Push notification format
{
body={
"image": "<Image link>",
"job_id": "1349",
"id": 121,
"message": "New Message Received",
"type": "Placebid",
"username": "User1234"
},
title=Placebid
}
'(... value.contains( "Placebid")){JSONObject OBJ =新しいJSONObject(値);}場合は'それはSENSがありません...値= Placebid – Selvin
はなぜあなたを行うので、 forループが必要ですあなたのキーが「タイトル」であることを知っていたら?マップからキーを使用して値を直接取得し、それが "Placebid"と等しいかどうかを確認します。 –
これについての小さな例を教えてもらえますか? @AkshayBhat –