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, 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 de FirebaseInstanceIdService
Mais, montrant que FirebaseInstanceIdService est obsolète
Quelqu'un sait-il cela?, Quelle méthode ou classe que je devrais utiliser à la place de ceci pour obtenir un jeton actualisé car celui-ci est obsolète.
J'utilise: implementation 'com.google.firebase:firebase-messaging:17.1.0'
J'ai vérifié le document pour le même il n'y a rien mentionné à ce sujet. : DOCUMENT DE CONFIGURATION DE LA FCM
METTRE À JOUR
Ce problème a été corrigé.
Comme Google a déconseillé la FirebaseInstanceService
,
J'ai posé la question pour trouver le chemin et je sais que nous pouvons obtenir le jeton de FirebaseMessagingService,
Comme auparavant, quand j'ai posé la question, les documents n'étaient pas mis à jour, mais Google Documents est mis à jour. Pour plus d'informations, reportez-vous à la documentation Google suivante: FirebaseMessagingService
OLD De: FirebaseInstanceService (Obsolète)
@Override
public void onTokenRefresh() {
// Get updated InstanceID token.
String refreshedToken = FirebaseInstanceId.getInstance().getToken();
Log.d(TAG, "Refreshed token: " + refreshedToken);
}
NEW De: FirebaseMessagingService
@Override
public void onNewToken(String s) {
super.onNewToken(s);
Log.d("NEW_TOKEN",s);
}
Merci.
firebaser ici
Vérifiez la documentation de référence pour FirebaseInstanceIdService
:
Cette classe était obsolète.
En faveur de la substitution de
onNewToken
dansFirebaseMessagingService
. Une fois que cela a été mis en œuvre, ce service peut être supprimé en toute sécurité.
Bizarrement, le JavaDoc pour FirebaseMessagingService
ne mentionne pas encore la méthode onNewToken
. Il semble que toute la documentation mise à jour n'ait pas encore été publiée. J'ai déposé un problème interne pour obtenir les mises à jour des documents de référence publiés et pour mettre à jour les exemples du guide.
Entre-temps, les anciens appels/obsolètes et les nouveaux doivent fonctionner. Si vous avez des problèmes avec l'un ou l'autre, postez le code et je jetterai un œil.
Et ça:
FirebaseInstanceId.getInstance().getInstanceId().getResult().getToken()
supposons être une solution de obsolète:
FirebaseInstanceId.getInstance().getToken()
MODIFIER
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 donc la bonne façon de le faire.
Kotlin:
FirebaseInstanceId.getInstance().instanceId.addOnSuccessListener(this) { instanceIdResult ->
val newToken = instanceIdResult.token
Log.e("newToken", newToken)
}
Dans KOTLIN: - Si vous souhaitez enregistrer Token dans une base de données ou des préférences partagées, remplacez onNewToken dans FirebaseMessagingService
override fun onNewToken(token: String?) {
super.onNewToken(token)
}
Obtenir un jeton au moment de l'exécution, utilisez
FirebaseInstanceId.getInstance().instanceId
.addOnSuccessListener(this@SplashActivity) { instanceIdResult ->
val mToken = instanceIdResult.token
println("printing fcm token: $mToken")
}
Kotlin permet un code encore plus simple que celui indiqué dans les autres réponses.
Pour obtenir le nouveau jeton chaque fois qu'il est actualisé:
class MyFirebaseMessagingService: FirebaseMessagingService() {
override fun onNewToken(token: String?) {
Log.d("FMS_TOKEN", token)
}
...
}
Pour obtenir le jeton de n'importe où au moment de l'exécution:
FirebaseInstanceId.getInstance().instanceId.addOnSuccessListener {
Log.d("FMS_TOKEN", it.token)
}
FirebaseinstanceIdService
est obsolète. Il faut donc utiliser "FirebaseMessagingService"
Mer l'image s'il vous plaît:
public class MyFirebaseMessagingService extends FirebaseMessagingService {
@Override
public void onNewToken(String s) {
super.onNewToken(s);
Log.e("NEW_TOKEN",s);
}
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
super.onMessageReceived(remoteMessage);
}
}