android - ontokenrefresh - Qué usar ahora que FirebaseInstanceId.getInstance(). GetToken() está en desuso
onnewtoken string token (2)
Esta pregunta ya tiene una respuesta aquí:
- FirebaseInstanceIdService está en desuso 6 respuestas
Me gustaría saber cuál sería la forma correcta de obtener el token de Firebase para el envío de notificaciones push ahora que getToken () está en desuso.
Como dice la documentation :
Este método fue desaprobado . A favor de getInstanceId ().
getInstanceId() devolverá una tarea con e InstanceIdResult. Me gusta esto:
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
}
});
ACTUALIZACIÓN : Aunque es cierto que este enfoque reemplazará literalmente el uso de FirebaseInstanceId.getInstanceId (). GetToken () , no resuelve el hecho de que FirebaseInstanceIdService también está en desuso y nos deja con otra pregunta: ¿dónde usarlo? Se puede usar en cualquier contexto de Actividad, siempre devolverá el token. Pero, ¿qué pasa si queremos obtener el token solo en la creación y cuando rara vez se actualiza? Para eso, debe anular el nuevo método onNewToken de nuestra antigua implementación de FirebaseMessagingService : (Sí, "Mensajería", no "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 esta manera, el código seguirá siendo más simple y no será necesario utilizar el primer enfoque.
FirebaseInstanceIdService estaba en desuso.
simplemente anula
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()
Esto también está en desuso.
Si necesita obtener un token en su actividad, use el siguiente código.
FirebaseInstanceId.getInstance().getInstanceId().addOnSuccessListener( MyActivity.this, new OnSuccessListener<InstanceIdResult>() {
@Override
public void onSuccess(InstanceIdResult instanceIdResult) {
String mToken = instanceIdResult.getToken();
Log.e("Token",mToken);
}
});