114 votes

Quoi utiliser maintenant que FirebaseInstanceId.getInstance (). GetToken () est obsolète

Je voudrais savoir quelle serait la bonne façon d'obtenir le jeton Firebase pour envoyer une notification push maintenant que getToken () est déconseillé.

209voto

Facundo Points 2071

Comme la documentation dit :

Cette méthode est déconseillée. En faveur de getInstanceId().

getInstanceId() retournera une Tâche avec et InstanceIdResult. Comme ceci:

 FirebaseInstanceId.getInstance().getInstanceId().addOnSuccessListener( new OnSuccessListener<InstanceIdResult>() {                    
                @Override
                public void onSuccess(InstanceIdResult instanceIdResult) {
                      String deviceToken = instanceIdResult.getToken();
                      // Do whatever you want with your token now
                      // i.e. store it on SharedPreferences or DB
                      // or directly send it to server 
                }
});

Mise à JOUR: Si est vrai que cette approche va littéralement se substituer à l'utilisation de FirebaseInstanceId.getInstanceId().getToken(), elle ne résout pas le fait que FirebaseInstanceIdService est également déprécié nous laissant avec une autre question qui est: où est-il utilisé? Il peut être utilisé dans un contexte d'Activité qu'il retournera toujours le jeton. Mais que faire si nous voulons obtenir le jeton uniquement sur la création et lorsqu'il est rarement mis à jour? Pour cela, vous devez remplacer la nouvelle méthode onNewToken de notre vieille FirebaseMessagingServicemise en œuvre: (Oui, "Messagerie", pas "InstanceId")

@Override
public void onNewToken(String s) {
    super.onNewToken(s);
    String deviceToken = s;
    // Do whatever you want with your token now
    // i.e. store it on SharedPreferences or DB
    // or directly send it to server 
}

De cette façon, le code restera plus maigre et pas même être nécessaire d'utiliser la première approche.

36voto

KUSHA B K Points 164

FirebaseInstanceIdService a été déconseillé.!

juste remplacer onNewToken() en FirebaseMessagingService

 public class LatestFirebaseMessagingService extends FirebaseMessagingService {

@Override
public void onNewToken(String mToken) {
    super.onNewToken(mToken);
    Log.e("TOKEN",mToken);
}

@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
    super.onMessageReceived(remoteMessage);
}} 
 

En AndroidManifest.xml

 <service
        android:name=".LatestFirebaseMessagingService"
        android:stopWithTask="false">
        <intent-filter>
            <action android:name="com.google.firebase.MESSAGING_EVENT" />
        </intent-filter>
</service>
 

getToken() Ceci est également déconseillé.!

si vous avez besoin d'un jeton dans votre activité, utilisez le code ci-dessous.

 FirebaseInstanceId.getInstance().getInstanceId().addOnSuccessListener( MyActivity.this,  new OnSuccessListener<InstanceIdResult>() {
     @Override
     public void onSuccess(InstanceIdResult instanceIdResult) {
           String mToken = instanceIdResult.getToken();
           Log.e("Token",mToken);
     }
 });
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X