web-dev-qa-db-fra.com

Réponse non enregistrée de FCM même lorsque l'application est installée sur le périphérique mobile d'un utilisateur

Nous venons de migrer de GCM vers FCM. Pour le suivi des désinstallations, nous envoyons une notification silencieuse à tous nos utilisateurs et si nous obtenons une réponse "Non enregistré", nous traitons l'utilisateur comme désinstallé. Depuis quelques jours, nous avons commencé à obtenir "NotRegistered" pour certains des utilisateurs qui n'ont pas désinstallé l'application.

Lors de l'interrogation des diagnostics FCM pour le même jeton d'enregistrement, les messages sont livrés mais ils sont continuellement dans un état accepté. Le code d'erreur que j'ai reçu lors de l'envoi du message est toujours "NotRegistered". L'utilisateur n'a pas désinstallé l'application. Ci-joint la capture d'écran.

Nous obtenons "Non enregistré" depuis le 1er juin alors que les messages sont acceptés jusqu'au 4 juin. Cette image montre les ID de message des notifications envoyées jusqu'au 4 juin:

1

Souhaite une clarification sur les points suivants:

  1. Pourquoi le statut du jeton d'enregistrement FCM est-il devenu NotRegistered? Il n'y a pas eu de mise à niveau depuis le mois dernier et l'utilisateur utilise la dernière version depuis longtemps?

  2. La vérification du code d'erreur FCM "NotRegistered" est-elle un moyen de preuve complet pour suivre les désinstallations? Existe-t-il de meilleurs mécanismes?

10
karan
  1. Les raisons pour lesquelles un NotRegistered se produit sont indiquées dans le docs , le troisième étant une raison probable pour votre cas (soulignement le mien):

    Un jeton d'enregistrement existant peut cesser d'être valide dans un certain nombre de scénarios, notamment:

    • Si l'application cliente se désinscrit auprès de FCM.
    • Si l'application client n'est pas automatiquement enregistrée, cela peut se produire si l'utilisateur désinstalle l'application. Par exemple, sur iOS, si le service de commentaires APNS a signalé que le jeton APNS n'était pas valide.
    • Si le jeton d'enregistrement expire (par exemple, Google peut décider d'actualiser les jetons d'enregistrement, ou si le jeton APNS a expiré pour les appareils iOS).
    • Si l'application cliente est mise à jour mais que la nouvelle version n'est pas configurée pour recevoir des messages.

    Dans tous ces cas, supprimez ce jeton d'enregistrement du serveur d'applications et arrêtez de l'utiliser pour envoyer des messages.

  2. Nan. Comme je l'ai indiqué ci-dessus, l'erreur NotRegistered ne se déclenche pas uniquement lors des désinstallations. AFAIK, il n'y a pas de moyen standard de le faire. Jetez un oeil à certains de ces messages .

8
AL.