retrieve ontokenrefresh onnewtoken gettoken getinstance firebaseinstanceidservice firebaseinstanceid failed android firebase push-notification firebase-cloud-messaging

android - ontokenrefresh - Qué usar ahora que FirebaseInstanceId.getInstance(). GetToken() está en desuso



onnewtoken string token (2)

Esta pregunta ya tiene una respuesta aquí:

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