2017-12-09 3 views
0

Ich baue eine App, die Firebase Auth (und Firestore-Datenbank) aber nur Facebook-Login verwendet.FIRAuthErrorDomain Code = 17014 Fehler beim Löschen von Firebase Auth b/c nicht wieder in meine iOS App (swift) eingeloggt?

Der Benutzer muss nur einmal mit meiner App einloggen und von da an, wenn sie weiterhin die App I

überprüfen öffnen
if Auth.auth().currentUser != nil 
{ 


} 

Und so, wenn es eine bereits angemeldeten Benutzer wird dann mache ich nicht sie loggen sich erneut ein.

Aber wenn sie wollen, ihr Konto aus der App die Fehlermeldung erscheint löschen: Ich muss erhalten die Benutzer wirklich

Error Domain=FIRAuthErrorDomain Code=17014 "This operation is sensitive and requires recent authentication. Log in again before retrying this request." UserInfo={NSLocalizedDescription=This operation is sensitive and requires recent authentication. Log in again before retrying this request., error_name=ERROR_REQUIRES_RECENT_LOGIN} 

Sie sich wieder anmelden? Weil das bedeutet, dass ich sie dazu bringen muss, sich mit Facebook neu einzuloggen und sie zurück zur fb-Seite zu schicken, damit sie ihr Konto löschen können, scheint übertrieben. Gibt es ein Token, das ich einfach zurücksenden kann, um die Anmeldung zu bestätigen? Diese

ist möglicherweise eine andere Frage ... aber wenn ich den Benutzer direkt von Feuerbasis Konsole gelöscht, so dass keine Benutzer im System belassen war ich aus der App ziemlich sicher, dass mir auf dem Client-Sitzung

Auth. auth(). currentUser war nicht null und enthielt immer noch die UID des Benutzerkontos, das ich gelöscht habe. Nicht ganz sicher, warum das so ist.

Danke.

Antwort

1

Dies geschieht aus Sicherheitsgründen. Die erneute Authentifizierung ist eine sensible Operation. Das gleiche wie wenn Sie versuchen, Ihr Passwort zu aktualisieren (Sie müssen das alte eingeben), aktualisieren Sie Ihre E-Mail, aktualisieren Sie eine Kreditkarte, Lieferadresse für eine E-Commerce-App, etc. Es ist vielleicht nicht bequem, aber es ist notwendig für die Sicherheit des Benutzers. Für eine gute Übung sollten Sie dies durchsetzen. Allerdings, wenn Sie benötigen einen Benutzer von dem Server zu löschen, können Sie immer Admin SDK admin.auth().deleteUser(uid) API verwenden: https://firebase.google.com/docs/auth/admin/manage-users#delete_a_user

Getrennt davon müssen Sie entweder reload die Benutzer oder die versuchen, die Token getIDToken zu aktualisieren, um es zu zwingen, das Löschen zu erkennen des Benutzers.