Comment gérer FirebaseInstanceId.getInstance (). GetToken () = null
Je viens de migré à la FCM. J'ai ajouté ma classe qui étend la classe de FirebaseInstanceIdService pour recevoir un refreshedToken que, le cas échéant.
Ma question est spécifique pour le cas lorsque l'utilisateur installe mon application une première fois et pour une raison quelconque, impossible de recevoir un numéro d'enregistrement de onTokenRefresh. Comment sommes-nous censés faire? Puis-je configurer un récepteur de radiodiffusion de mon FirebaseInstanceIdService classe qui en notifiera l'activité Principale lorsqu'un numéro d'enregistrement est reçu?
source d'informationauteur Lucky
Vous devez vous connecter pour publier un commentaire.
utilisation ci-dessous les codes:
dans votre activité principale:
Autant que je sache, le jeton sera null uniquement lorsque vous essayez d'exécuter votre application sur l'émulateur sur google play service n'est pas là, et quand vous êtes à l'aide de la double identification d'email sur vous google play store(sur vous réel de l'appareil), mais seulement une id e-mail est vérifiée pour l'utilisation. Ce sont les affaires qui vous donnera null jeton et j'ai déjà mis en œuvre la FCM dans mon nouveau projet. Donc pour le reste des cas , le jeton n'est pas null.
J'ai été confrontée au même problème. J'ai regardé à travers un grand nombre de postes et d'autres forums et j'ai trouvé une solution qui a fonctionné pour moi. La FCM documentation dit d'utiliser cette méthode pour obtenir un jeton.
J'ai trouvé un post en ligne (je m'en excuse, je ne me souviens pas lequel. J'ai trouvé il y a un moment), qui ont utilisé cette méthode à la place:
FCM documentation décrit la première méthode:
Tandis que le second est décrit comme:
J'ai été à la recherche dans laquelle le premier appel de la méthode prend plus de temps pour retourner un jeton, mais je n'ai pas trouvé encore de réponse. Espérons que cette aide.
Changer cela dans manifest.xml fichier
outils:node="remplacer"
pour
outils:node="fusionner".
selon la logique de votre application, vous pouvez écrire du code pour gérer la "nouvelle" jeton directement dans le
FirebaseInstanceIdService.onTokenRefresh()
méthode, ou vous pouvez utiliser un LocalBroadcast d'envoyer cette information à votre activité si vous avez besoin de changer l'INTERFACE utilisateur lorsque cet événement se produit.Noter que lorsque
onTokenRefresh()
est appelé votre activité pourrait être fermé.Une possible mise en œuvre pourrait être un mélange des deux options:
onTokenRefresh()
pour envoyer le jeton à votre serveurUtiliser cette classe étend avec..
Si vous l'exécutez sur votre émulateur, vérifiez que vous avez Google play services activé dans Outils -> Android -> SDK Manager -> SDK Outils -> Google play services
Une fois installé, redémarrez les deux Android Studio et votre émulateur
Il a travaillé pour moi