I\'m creating an app which uses Facebook and GCM. A user can use the app on multiple devices, a friend can send him GCM messages using his facebook id.
On my server,
For Case 1: from the docs:
GCM provides a facility called "canonical registration IDs" to easily recover from these situations. A canonical registration ID is defined to be the ID of the last registration requested by your application. This is the ID that the server should use when sending messages to the device.
When sending a message to a list of devices, the list of results will be in the same order. So, you can actually just look up the regID used at the same index as in the results, and replace that registrationID in your dataStore. Remember to keep the canonical ID, as that's the most recently registered one.
For Case 2: Similarly, delete the regID that was at the same index.
For a full sample implementation, take a look at the official demo code for a send call similar to the one you're implementing.