55 votes

En quelle période le jeton d'application de Firebase change-t-il et comment le gérer?

Je suis nouveau sur firebase je suis en train d'apprendre comme un enfant apprend à marcher. Jusqu'à présent j'ai réussi à envoyer un message à mon propre téléphone à l'aide d'un jeton généré pour mon téléphone par firebase cadre. Maintenant, voici où ça devient difficile (à mon avis). Il existe une méthode appelée onTokenRefresh() dans la FirebaseInstanceIdService de service prolongé. Depuis, il est appelé d'actualisation, Alors que je suis en supposant que cela va changer. Je veux savoir quand ce jeton est créé et quand doit-il être changé?

Et si elle change, supposons que j'envoie un message à un appareil avec un jeton 'A' qui est hors ligne pour le moment, de sorte qu'il sera mis en file d'attente. Maintenant, lorsque l'appareil est en ligne, il sera le "rafraîchir" le jeton à "B". Maintenant que le message était censé être livré à jeton 'A', le message ne sera jamais livré. Comment puis-je gérer cette situation?

69voto

Diego Giorgini Points 74

Le jeton est généré, après que l'application est lancé pour la première fois, dès que le téléphone peut se connecter aux serveurs de Google. En raison de la connectivité nécessaire cela n'arrive pas immédiatement, mais dans la plupart des cas, il va arriver dans quelques secondes après que l'utilisateur ouvre l'application. Dès que le jeton est généré la méthode onTokenRefresh() est appelé.

Comme vous l'avez souligné le jeton peut changer, dans ce cas l' onTokenRefresh() méthode sera appelée de nouveau.
L'actualisation de l'événement est en quelque sorte rares, ne vous attendez pas à le voir souvent.

Lorsque l'actualisation jeton arrive, tous les messages qui ont été "avec succès" envoyé (l'API renvoyé un message-id) de l'ancien jeton sera livré.

Enfin, même après l'actualisation qui s'est passé l'ancien jeton sera toujours travailler pour une courte période, pour permettre à l'application de communiquer le nouveau jeton à son back-end.

28voto

Prakhar Anand Points 201

Sur le premier démarrage de votre application, le sdk de la FCM génère l'enregistrement jeton pour le client instance de l'application. Comme dit ci-dessus, Il est un événement rare. Pour être précis,Le jeton d'inscription peuvent changer lorsque:

  • L'application supprime l'ID d'Instance.
  • L'application est restauré sur un nouvel appareil
  • L'utilisateur de désinstaller/réinstaller l'application
  • L'utilisateur efface les données de l'application.

ID d'Instance fournit un ID unique par exemple de vos applications.ID d'Instance fournit une API simple pour générer des jetons de sécurité d'autoriser des tiers à accéder à votre application côté serveur géré les ressources.L'ID de l'Instance du serveur peut même vous dire quand le périphérique sur lequel votre application est installée a été utilisé en dernier.Nous pouvons utiliser cette information pour décider s'il convient de conserver des données à partir de l'application ou envoyer un message push de renouer le dialogue avec les utilisateurs.

Chaque fois que l'appareil jeton est changé, Il est reflétée dans onTokenRefresh() méthode.Pour obtenir l'appareil jeton lorsqu'il est changé, on peut appeler cette méthode pour obtenir le jeton d'actualisation.

et pour obtenir le dispositif de jeton à tout moment, nous pouvons utiliser FirebaseInstanceId.getInstance().getToken() méthode pour obtenir de l'actuel dispositif de jeton.Il faut un peu de temps pour obtenir le dispositif de jeton.

Cliquez ici pour en lire plus sur l'accès à l'enregistrement du périphérique jeton.

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