web-dev-qa-db-fra.com

FirebaseInstanceIdService est obsolète

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.

115
Uttam Panchasara

firebaser ici

Vérifiez la documentation de référence pour FirebaseInstanceIdService :

Cette classe était obsolète.

En faveur de la substitution de onNewToken dans FirebaseMessagingService. 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.

76
Frank van Puffelen

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)
    }
8
Aleksandar Mironov

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")
                        }
1
Rahul

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)
}
0
Gumby The Green

FirebaseinstanceIdService est obsolète. Il faut donc utiliser "FirebaseMessagingService"

Mer l'image s'il vous plaît:

enter image description here

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);
    }
}
0
Harunduet