When a user sends a message, likely you are publishing that message so that actively subscribed users will receive that message in realtime and also as a mobile push notification (APNS or FCM) so that offline users (that were actively subscribed) get the message as a mobile push message. But if the sender backgrounds the app very quickly after sending the message, it is possible that they will get a push notification for the message they just sent. This is not likely the behavior you intended.
Using "excluded_devices" (APNS) and "pn_exceptions" (FCM) attributes, you can prevent this from happening. For any message that gets published, create the message payload so that the sending device's push token is added to this key.
{
"pn_apns" : {
"aps" : {
"alert" : {
"body" : "hello (via APNS)"
}
},
"excluded_devices" : [
"da284603e1e96ac453541cd1942659808a69c09fb1dbb2e3c11aba6cdcaec642"
]
},
"pn_gcm" : {
"alert" : "hello (via FCM)",
"pn_exceptions" : [
"2643d955c7f2506e55f225b56da7eb8676cced80de93df51aad7569ee833b92f"
]
},
text : "hello (in realtime)"
}
If you need to exclude more than just the sender device, you can add as many device push tokens as required. Perhaps a user has multiple devices and you do not want to send the user's message (as a push notification) to any of that user's devices.
You can also do this for the realtime messages. Check our official documentation to learn more.