android - getinstanceid - firebaseinstanceid getinstance() gettoken() is deprecated



Cosa usare ora che FirebaseInstanceId.getInstance(). GetToken() è obsoleto (2)

Come dice la documentation :

Questo metodo è stato deprecato . A favore di getInstanceId ().

getInstanceId() restituirà un'attività con e InstanceIdResult. Come questo:

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

AGGIORNAMENTO : Anche se è vero che questo approccio sostituirà letteralmente l'uso di FirebaseInstanceId.getInstanceId (). GetToken () , non risolve il fatto che FirebaseInstanceIdService sia anche deprecato lasciandoci con un'altra domanda che è: dove usarlo? Può essere utilizzato in qualsiasi contesto di attività per restituire sempre il token. Ma cosa succede se vogliamo ottenere il token solo alla creazione e quando viene aggiornato raramente? Per questo dovresti sovrascrivere il nuovo metodo su NewToken dalla nostra vecchia implementazione FirebaseMessagingService : (Sì, "Messaging", non "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 
}

In questo modo il codice rimarrà più snello e non sarà nemmeno necessario per utilizzare il primo approccio.

https://src-bin.com

Questa domanda ha già una risposta qui:

Vorrei sapere quale sarebbe il modo corretto di ottenere il token Firebase per l'invio di notifiche push ora che getToken () è obsoleto.


Answer #1

FirebaseInstanceIdService era obsoleto.!

onNewToken() override di onNewToken() in 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);
}} 

In AndroidManifest.xml

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

getToken() questo è deprecato.!

se devi ottenere un token nella tua attività usa il codice qui sotto.

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




firebase-cloud-messaging