J'espère que vous êtes tous au courant de cette classe, utilisée pour obtenir un jeton de notification chaque fois que le jeton de notification Firebase est actualisé.Nous obtenons le jeton actualisé de cette classe, à partir de la méthode suivante.
@Override
public void onTokenRefresh() {
// Get updated InstanceID token.
String refreshedToken = FirebaseInstanceId.getInstance().getToken();
Log.d(TAG, "Refreshed token: " + refreshedToken);
}
Pour l'utiliser comme je veux implémenter FCM, j'ai étendu MyClass à partir de FirebaseInstanceIdService
Mais, montrant que FirebaseInstanceIdService est obsolète
Quelqu'un le sait-il ?, Quelle méthode ou classe dois-je utiliser à la place de cela pour obtenir un jeton actualisé car il est obsolète.
J'utilise : implementation 'com.google.firebase:firebase-messaging:17.1.0'
J'ai vérifié le document pour la même chose, il n'y a rien à ce sujet. : DOCUMENT DE CONFIGURATION FCM
METTRE À JOUR
Ce problème a été corrigé.
Comme Google a déprécié le FirebaseInstanceService
,
J'ai posé la question pour trouver le chemin et je sais que nous pouvons obtenir le jeton de FirebaseMessagingService ,
Comme auparavant, lorsque j'ai posé la question, les documents n'ont pas été mis à jour, mais maintenant les documents Google ont été mis à jour. Pour plus d'informations, reportez-vous à ce document Google: FirebaseMessagingService
OLD From: FirebaseInstanceService (obsolète)
@Override
public void onTokenRefresh() {
// Get updated InstanceID token.
String refreshedToken = FirebaseInstanceId.getInstance().getToken();
Log.d(TAG, "Refreshed token: " + refreshedToken);
}
NOUVEAU sur: FirebaseMessagingService
@Override
public void onNewToken(String s) {
super.onNewToken(s);
Log.d("NEW_TOKEN",s);
}
Merci.
la source
super.onNewToken(s);
? (Je ne vois pas qu'il soit appelé sur firebase.google.com/docs/cloud-messaging/android/client .)Réponses:
Firebaser ici
Consultez la documentation de référence pour
FirebaseInstanceIdService
:Curieusement, le JavaDoc pour
FirebaseMessagingService
ne mentionne pas encore laonNewToken
méthode. Il semble que toute la documentation mise à jour n'ait pas encore été publiée. J'ai déposé un problème interne pour que les mises à jour des documents de référence soient publiées et pour que les exemples du guide soient également mis à jour.En attendant, les appels anciens / obsolètes et les nouveaux devraient fonctionner. Si vous rencontrez des problèmes avec l'un ou l'autre, postez le code et je vais y jeter un œil.
la source
Oui
FirebaseInstanceIdService
est obsolètePas besoin d'utiliser le
FirebaseInstanceIdService
service pour obtenir le jeton FCM Vous pouvez supprimer leFirebaseInstanceIdService
service en toute sécuritéMaintenant , nous devons
@Override onNewToken
obtenirToken
dansFirebaseMessagingService
EXEMPLE DE CODE
ÉDITER
comment obtenir des jetons dans votre activité
Maintenant, nous devons utiliser
getInstanceId ()
pour générer un jetongetInstanceId ()
Renvoie leID
jeton généré automatiquement pour ceFirebase
projet.Cela génère un ID d'instance s'il n'existe pas encore, ce qui commence à envoyer périodiquement des informations au backend Firebase.
Retour
InstanceIdResult
qui contient leID
ettoken
.EXEMPLE DE CODE
EDIT 2
Voici le code de travail pour kotlin
la source
Et ça:
supposons être une solution obsolète:
ÉDITER
FirebaseInstanceId.getInstance().getInstanceId().getResult().getToken()
peut produire une exception si la tâche n'est pas encore terminée, la méthode décrite par Nilesh Rathod (avec.addOnSuccessListener
) est la bonne façon de le faire.Kotlin:
la source
Kotlin permet un code encore plus simple que ce qui est montré dans les autres réponses.
Pour obtenir le nouveau jeton chaque fois qu'il est actualisé:
Pour obtenir le jeton de n'importe où lors de l'exécution:
la source
FirebaseinstanceIdService
est obsolète. Il faut donc utiliser "FirebaseMessagingService"Mer l'image s'il vous plaît:
la source
Dans KOTLIN: - Si vous souhaitez enregistrer le jeton dans la base de données ou les préférences partagées, remplacez onNewToken dans FirebaseMessagingService
Obtenez un jeton au moment de l'exécution, utilisez
la source
override fun onNewToken(token: String)
(sans le point d'interrogation).Classe d'implémentation FCM:
Et appelez son initialisation dans Activity ou APP:
AndroidManifest.xml:
** Si vous avez ajouté "INSTANCE_ID_EVENT", n'oubliez pas de le désactiver.
la source
Vous devez utiliser
FirebaseMessagingService()
au lieu deFirebaseInstanceIdService
la source