2016-06-15 13 views
6

Die Firebase-Dokumentation besagt eindeutig, dass FirebaseInstanceIdService implementiert werden sollte, um auf das aktualisierte Token zuzugreifen, und dass die manuelle Registrierung nicht mehr erforderlich ist, da die Bibliothek für den gesamten Prozess zuständig ist.Firebase token refresh

Problem ist, dass onTokenRefresh nur einmal aufgerufen wird, und wenn etwas bei der Übertragung auf meinem Server schief geht, muss die Anwendung bis zur nächsten Aktualisierung warten oder eine vollständige Deinstallation/Neuinstallation durchführen.

Kann ich die gleiche Logik anwenden wie frühere GCM-Implementierungen? Das heißt, dass ich bei jedem Start meiner Anwendung auf Token unter Verwendung von FirebaseInstanceId.getInstance().getToken() zugreife und es an meinen Server sendete, egal, ob es bereits gesendet wurde. Das gleiche geschieht in onTokenRefresh.

Hat dieser Ansatz irgendeine Fallstricke?

Antwort

3

Was ich vorschlagen, dass zum ersten Mal, wenn Sie TOKEN lokal gespeichert zu bekommen (in gemeinsamem pref sein kann) und

eine Fahne es als falsch

initialisieren machen und dann versuchen, Senden Sie TOKEN an Ihren Server, der erfolgreich gesendet wurde. Setzen Sie flag ti auf true und Sie müssen nicht erneut senden.

+1

ich zu dem gleichen Schluss kam direkt nach der Frage eingefügt, aber ich werde Ihre Antwort akzeptieren, weil es richtig ist! – Alessandro

9

Auch scheint es, diese Funktion von außerhalb des Dienstes aufrufen können

FirebaseInstanceId.getInstance().getToken();

+1

richtige antwort, danke – pisumathu

Verwandte Themen