Firebase FCM Token – Wann zum Server senden?

Okay, also habe ich eine App, die beim ersten Start Sie durch ein paar einladende Folien bringt, dann bringt man zu einer Login / Register-Seite und dann zu MainActivity .

Ich habe gerade FCM implementiert und die Dienste generieren ein token bevor irgendwelche dieser Seiten vom Benutzer gesehen wurden. Wie könnte ich es so machen, dass der Service läuft, nachdem ich zur MainActivity ?

  • Retrofit 2.0-Methode ohne Antwort
  • Wie lösche ich sofort SPACE von einem Edittext, wenn ein Benutzer den Platz drückt?
  • Java und Android regex Unterschied
  • Jelly Bean DatePickerDialog - gibt es eine Möglichkeit zu stornieren?
  • Wie man die Kartenansicht reibungslos mit dem Lager in android dreht
  • Android Studio 1.0.1 fügen externe Bibliotheken hinzu
  • Das Problem ist, dass ich versuche, das Token zu senden, sobald es auf die MySQL DB auf das entsprechende Benutzerkonto aktualisiert wird, aber da der Benutzer noch nicht angemeldet hat, ist das null und meine Nachricht an den Server scheitert. Was ist ein guter Weg, um das zu entwerfen? Ich dachte daran, das Token in SharedPreferences und es an den Server zu senden, nachdem der Benutzer angemeldet hat, aber das schafft viele Komplikationen, wenn das Token zu einem späteren Zeitpunkt aktualisiert wird ?!

    Mögliche Lösung :

    Ich bin mir nicht sicher, ob ich völlig verstehe, wie die 2 Dienste laufen, aber sagen in onTokenRefresh Ich habe nur das Token in SharedPreferences und in MainActivity Ich bekomme den Wert von SP und dann schicke ich es an den Server. In diesem Fall, wenn das Token aufgefrischt wird, wird der neue Wert sofort wieder in SharedPreferences gehen. Aber ich brauche noch zu prüfen, ob es ein neuer Wert in SP ist und dann wieder auf den Server laden. Das ist verwirrend!

  • Android | Holen Sie sich alle Kinderelemente einer ViewGroup
  • Wie effektiv implementiere ich das MVVM-Design-Muster für meine Android-App, die auch das Schreiben von Testfällen erleichtert?
  • Android OpenGL ES und 2D
  • Wie man einen Weg auf einer Karte mit kml-Datei zeichnet?
  • Android 4.0 asynctask zur gleichen Zeit nicht möglich
  • Wie integriere ich Google Plus und Facebook Authentication zusammen in der gleichen Aktivität von Android-Projekt?
  • 3 Solutions collect form web for “Firebase FCM Token – Wann zum Server senden?”

    Ja FCM-Token wird automatisch generiert. Versuche aber das in einem anderen Blickwinkel zu sehen.

    So habe ich es behandelt.

    Lassen Sie FCM Token erzeugen, sobald Ihre App startet. OnTokenRefresh wird aufgerufen und Sie speichern es einfach in Ihren Einstellungen als:

     @Override public void onTokenRefresh() { // Get updated InstanceID token. String refreshedToken = FirebaseInstanceId.getInstance().getToken(); Log.d(TAG, "Refreshed token: " + refreshedToken); sendRegistrationToServer(refreshedToken); } private void sendRegistrationToServer(String token) { // Add custom implementation, as needed. SharedPreferenceUtils.getInstance(this).setValue(getString(R.string.firebase_cloud_messaging_token), token); // To implement: Only if user is registered, ie UserId is available in preference, update token on server. int userId = SharedPreferenceUtils.getInstance(this).getIntValue(getString(R.string.user_id), 0); if(userId != 0){ // Implement code to update registration token to server } } 

    Hoffe, du bist klar mit dem Weg. Fragen Sie, wenn Sie mehr Abstand benötigen.

    Beachten Sie, dass Sie immer das Token mit:

     FirebaseInstanceID.getInstance().getToken(); 

    Dies wird null wenn das Token noch nicht erzeugt wurde oder das Token, wenn es erzeugt wurde. In Ihrem Fall ist es sehr wahrscheinlich, dass das Token wird von der Zeit, die der Benutzer angemeldet hat, generiert werden. So sollten Sie in der Lage sein, es an Ihren App-Server zu senden, sobald der Benutzer angemeldet hat. Wenn es nicht verfügbar ist, dann sind Sie Würde es in den onTokenRefresh Rückruf senden, wie Chintan Soni erwähnt hat.

    Wir haben es so behandelt:

    1. Unser Server erstellt / aktualisiert den Token-Wert gegen eine Benutzer-ID (Primärschlüssel)
    2. Verwenden Sie 2 SharedPreferences
      1. String – Token String
      2. Boolean (aktualisiert) – ob Token auf dem Server aktualisiert wird oder nicht.

    Im Falle der Token-Aktualisierung aktualisieren wir den Token-String und setzen den Boolean auf false. Später, wenn Benutzer jedes Mal, wenn wir auf Boolean (aktualisiert), wenn das falsch ist – wir das aktuelle Token an seine ID und senden Sie es an den Server und setzen aktualisiert auf true.

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.