webentwicklung-frage-antwort-db.com.de

Was ist jetzt zu verwenden, wenn FirebaseInstanceId.getInstance (). GetToken () veraltet ist?

Ich würde gerne wissen, wie das Firebase-Token für das Senden von Push-Benachrichtigungen korrekt abgerufen werden kann, wenn getToken () veraltet ist.

61

As Dokumentation sagt:

Diese Methode ist veraltet . Für getInstanceId ().

getInstanceId () gibt einen Task mit und InstanceIdResult zurück. So was:

 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: Dieser Ansatz ersetzt jedoch buchstäblich die Verwendung von FirebaseInstanceId.getInstanceId (). getToken () , es löst nicht die Tatsache, dass FirebaseInstanceIdService ebenfalls veraltet ist und wir eine andere Frage haben, nämlich: wo um es zu benutzen? Es kann in jedem Aktivitätskontext verwendet werden, bei dem das Token immer zurückgegeben wird. Aber was ist, wenn wir das Token nur bei der Erstellung erhalten möchten und wenn es selten aktualisiert wird? Dazu sollten Sie die neue Methode onNewToken aus unserer alten FirebaseMessagingService -Implementierung überschreiben: (Ja, "Messaging", nicht "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 
}

Auf diese Weise bleibt der Code schlanker und wird nicht einmal benötigt, um den ersten Ansatz zu verwenden.

107
Facundo

FirebaseInstanceIdService wurde verworfen.!

überschreibe einfach 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);
}} 

InAndroidManifest.xml

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

getToken() Dies ist ebenfalls veraltet.!

wenn Sie ein Token für Ihre Aktivität benötigen, verwenden Sie den folgenden Code.

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