1

Ich habe Android App, die Firebase-Authentifizierung verwendet, um Benutzer zu authentifizieren. Nach der Anmeldung sende ich Benutzerinformationen an mein Backend (Python/Kolben) und speichere diese Informationen in der Datenbank.So verknüpfen Sie bestimmte Benutzer mit Instanz-ID

Jetzt muss ich eine Benachrichtigung an bestimmte Benutzer vom Backend senden, aber wie kann ich wissen, welche Instanz-ID für den Benutzer gehört? Derzeit gibt es keine Verbindung zwischen Benutzer-ID und Instanz-ID. Wie kann ich diese miteinander verknüpfen? Die Instanz-ID wird erstellt und beim Start der App an das Backend gesendet, bevor der Benutzer angemeldet wird.

+0

Aber was meinst du mit Benutzer-ID? Sie können Ihre Instanz-ID einfach von App zu Server hochladen. Was machst du, um Benutzer zu speichern? – Konrad

+0

Mit Benutzer-ID meine ich Firebase Benutzer-UID. Ja, ich kann die Instanz-ID an den Server senden, aber wie kann ich sie mit bestimmten Benutzern verknüpfen? Nach der Registrierung speichere ich zusätzliche Informationen in meiner Datenbank (firebase_uid, Nickname, Alter etc.). – iqpolar

+0

Zum Beispiel muss ich eine Push-Benachrichtigung für einen Benutzer senden, dessen Nickname John ist (Benutzer in der Datenbank). Wie kann ich Johns Instanz-ID herausfinden? – iqpolar

Antwort

1

Sie müssen eine Zuordnung zwischen uid und iid pflegen. Jedes Mal, wenn sich ein Benutzer anmeldet, erhalten Sie eine Schlüssel/Wert-Karte von uid: [alle Iids von verschiedenen Geräten] auf Ihrem Backend. Stellen Sie sicher, dass Sie das Firebase-ID-Token senden und die UID von dort abrufen, nachdem Sie das Token überprüft haben. Sie müssen diese Zuordnung beibehalten. Wenn sich der Benutzer abmeldet oder eine Firebase-Sitzung aus verschiedenen Gründen für ungültig erklärt wird (Benutzer deaktiviert, gelöscht oder zurückgesetzt), heben Sie die Verknüpfung dieser ID von der uid auf, und entfernen Sie sie aus der Zuordnung, wenn eine ID ungültig ist. Wenn Sie eine Push-Benachrichtigung an einen durch uid identifizierten Benutzer senden müssen, suchen Sie die Liste der iid-Token auf und senden eine Benachrichtigung an jeden Benutzer.

+0

Ok. Wie kann ich erkennen, wenn iid ungültig ist, so kann ich es zum Backend senden und die Verbindung dieses iid von der uid aufheben? – iqpolar

+0

Sie verfügen über öffentliche Methoden zum Löschen eines Tokens: https://firebase.google.com/docs/reference/android/com/google/firebase/iid/FirebaseInstanceId#public-methods und einen Listener für die Token-Aktualisierung: https: // firebase.google.com/docs/reference/android/com/google/firebase/iid/FirebaseInstanceIdService#public-methods – bojeil

+0

Was passiert, wenn sich der Nutzer anmeldet (Link zwischen iid und uid) und dann App löschen und neu installieren (neue iid erstellt). Wird es eine veraltete Verbindung zwischen iid und uid geben? – iqpolar

Verwandte Themen