J'aimerais savoir quel serait le bon moyen d'obtenir un jeton Firebase pour envoyer une notification Push maintenant que getToken () est obsolète.
Comme documentation dit:
Cette méthode était obsolète . En faveur de getInstanceId ().
getInstanceId () renverra une tâche avec et InstanceIdResult. Comme ça:
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
}
});
UPDATE: Bien qu'il soit vrai que cette approche remplacera littéralement l'utilisation de FirebaseInstanceId.getInstanceId (). getToken () , cela ne résout pas le fait que FirebaseInstanceIdService est également obsolète, ce qui nous laisse une autre question: où pour l'utiliser? Il peut être utilisé dans n'importe quel contexte d'activité pour lequel le jeton sera toujours renvoyé. Mais que faire si nous voulons obtenir le jeton uniquement lors de la création et quand il est rarement mis à jour? Pour cela, vous devez remplacer la nouvelle méthode onNewToken de notre ancienne FirebaseMessagingService : (Oui, "Messaging", 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 ne sera même pas nécessaire d’utiliser la première approche.
FirebaseInstanceIdService était obsolète.!
remplacez simplement onNewToken()
dans 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);
}}
InAndroidManifest.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’obtenir des jetons 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);
}
});