9 votes

Restriction des notifications GCM/FCM par le biais du désenregistrement

Existe-t-il un moyen de restreindre l'enregistrement des notifications push de Firebase ? Je ne cherche pas de sujets. Disons que j'ai une fonction de connexion. Je veux que les utilisateurs signés soient abonnés aux notifications push. Ensuite, le jeton peut être envoyé au serveur et stocké.

En même temps, lorsque les utilisateurs se déconnectent, ils doivent également être désenregistrés.

Existe-t-il donc un mécanisme disponible actuellement ? J'ai parcouru la documentation de l'API Firebase mais je n'ai rien trouvé à ce sujet.

Je veux juste savoir si j'ai manqué quelque chose.

7voto

AL. Points 21726

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 .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X