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é.
- FirebaseInstanceIdService est déprécié (5 réponses )
Réponses
Trop de publicités?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.
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);
}
});