Pour la différence sur le moment où il faut utiliser deleteToken()
vs deleteInstanceId()
Pour plus d'informations, consultez le site réponse .
Le désenregistrement d'une instance d'application (dispositif/utilisateur) lors de la déconnexion n'est pas conseillé, même depuis GCM. Selon le Docs GCM
Les développeurs ne devraient jamais désenregistrer l'application cliente comme mécanisme de déconnexion ou de changement d'utilisateur, pour les raisons suivantes :
-
Un jeton d'enregistrement n'est pas associé à un utilisateur connecté particulier. Si l'application cliente se désinscrit puis se réinscrit, elle peut recevoir le même jeton d'enregistrement ou un jeton d'enregistrement différent.
-
Le désenregistrement et le réenregistrement peuvent prendre jusqu'à cinq minutes chacun pour se propager. Pendant ce temps, les messages peuvent être rejetés en raison de l'état de non-enregistrement, et les messages peuvent être envoyés au mauvais utilisateur.
Si vous voulez continuer, vous pouvez toujours vous référer aux mêmes documents ci-dessus.
Désinscription et désabonnement
Il existe trois méthodes qu'une application cliente peut utiliser pour cesser de recevoir des messages et/ou des abonnements à des sujets du serveur d'applications :
-
InstanceID deleteToken() avec l'audience définie sur l'ID de l'expéditeur du serveur d'application et la portée définie sur GCM. Cela arrête les messages (y compris les messages de thème) provenant d'un serveur d'applications spécifique.
-
InstanceID deleteID(). Cela arrête les messages de tous les enregistrements précédents et les abonnements aux sujets pour tous les serveurs d'applications.
-
GCMPubSub unsubscribe(). Cela permet d'arrêter les messages du sujet spécifique du serveur d'applications.
Pour le FCM, ce devrait être le FirebaseInstanceId
.