2017-08-18 2 views
0

Meine App erfordert, dass sich Benutzer registrieren und anmelden, um die App zu verwenden. Ich verwende Firebase-Authentifizierung zur Authentifizierung von Benutzern. Das Problem ist, wenn ein Benutzer die App herunterlädt und sich nicht anmeldet, erhält er von anderen Benutzern gesendete Push-Benachrichtigungen, was nicht passieren sollte. Der Benutzer sollte Benachrichtigungen nur dann mit der App erhalten, wenn er angemeldet ist. Dies geschieht, weil die Token sofort nach dem Herunterladen der App generiert und gespeichert werden. Wie kann ich Token nur generieren, wenn der Benutzer sich angemeldet hat? Dies ist der Code, den ich versucht, aber die Zeichen überhaupt nicht zu verwenden, zu erzeugen:Wie erzeuge ich Tokens, wenn sich der Benutzer angemeldet hat?

private FirebaseAuth.AuthStateListener mAuthListener; 
@Override 
    public void onTokenRefresh() { 

     final String recent_token = FirebaseInstanceId.getInstance().getToken(); 
     Log.d(REG_TOKEN, recent_token); 
     //databaseReference = FirebaseDatabase.getInstance().getReference().child("Blog"); 
     mAuth = FirebaseAuth.getInstance(); 
     mAuthListener = new FirebaseAuth.AuthStateListener() { 
      @Override 
      public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) { 
       if (firebaseAuth.getCurrentUser() != null) { 
        if(recent_token!=null) 
         Log.d(REG_TOKEN, recent_token); 
        else if(recent_token==null) 
         onTokenRefresh(); 

       } 
      } 
     }; 



    }} 

Antwort

0

ich dies kommentieren würde, da ich auf native Android entwickeln sich nicht, so kann ich viel Code nicht teilen, aber Was ist mit dem Senden von Pushs zu Themen anstelle des Tokens?

Sie können einen Benutzer für ein bestimmtes Thema abonnieren, nachdem er sich angemeldet oder ein Konto erstellt und Pushs nur an Personen gesendet hat, die diese Themen abonniert haben.

Sie einen Benutzer zu einem bestimmten Thema

FirebaseMessaging.getInstance().subscribeToTopic("your_topic_name"); 

So verwenden abonnieren können, wenn pushs Senden werden Sie nur an your_topic_name senden, und es ist einfacher, weil Sie brauchen, um alle Ihre Token nicht zu erhalten und eine schicken um eins (was ich denke, du machst).

Wenn der Benutzer die App öffnet, müssen Sie es erneut prüfen und ihn abonnieren (nur zur Sicherheit).

Hier finden Sie mehr über subscribing users to topics.

Hoffe, das hilft.

+0

Eigentlich möchte ich, dass alle Geräte, die meine App herunterladen, in der Lage sein sollten, Benachrichtigungen über alles im Zusammenhang mit meiner App zu erhalten. Der einzige Haken ist, dass sie in meiner App registriert sein sollten. Lediglich das Herunterladen der App sollte ihnen keine Benachrichtigungen liefern. Wie bei Facebook, bis Sie nicht angemeldet sind, erhalten Sie keine Benachrichtigungen. –

+0

Das Abonnieren von Themen dient nicht wirklich meinem Zweck. Aber trotzdem danke für deinen Vorschlag. –

Verwandte Themen