I am trying to send a json message that has data
payload from AWS SNS to FCM. Per another thread, the JSON message that I send from SNS should be in the form:
{
"GCM": "{ \"data\": { \"message\": \"test message\" } }"
}
Within my Android App, I have extended the FirebaseMessagingService
and overrode the OnMessageReceived
method to handle incoming push notifications.
Here's what my code looks like:
public override void OnMessageReceived(RemoteMessage message)
{
string messageBody = message.GetNotification().Body; //Fails here
int custom1;
string custom2 = string.Empty;
try { custom1 = Convert.ToInt32(message.Data["custom1"]); }
catch (KeyNotFoundException e) { custom1 = -1; }
try { custom2 = message.Data["custom2"].ToString(); }
catch (KeyNotFoundException e) { custom2 = "err"; }
PublishNotification(messageBody, custom1, custom2);
}
When I send a custom notification through SNS using the JSON message I have written above, the message is received successfully. However, when I attempt to process the JSON, it fails once it reaches message.GetNotification().Body
. The error I receive tells me the body was not included in the JSON message.
My question is, what is the correct JSON message when sending data
payloads from AWS SNS to FCM.
I have tried the following alternatives as well, to no avail:
{
"GCM": "{ \"data\": { \"text\": \"test message\" } }"
}
{
"GCM": "{ \"data\": { \"body\": \"test message\" } }"
}
Thank you in advance for any help.