0

Es gibt einen Fehler, der in meiner App passiert. Ich vermute, dass es etwas mit langsamer Internet-Verbindung zu tun hat, und da der Benutzer keine Antwort erhält, trifft er weiterhin die Anmelde-Taste. Ich werde in die DB schauen und sehen, wie 12 Konten für dieselbe E-Mail alle gleichzeitig angemeldet sind. Wie gehst du damit um? Gibt es eine Möglichkeit, ein Spinner zu machen, bis die Firebase login/createAccount Methode beendet ist?Firebase erstellt mehrere Konten, wenn ich es auf eins pro E-Mail gesetzt habe

+0

Standardmäßig sollte ein Konto pro E-Mail-Adresse durchgesetzt werden. Hast du diese Einstellung geändert? Der Zugriff erfolgt über die Konsole unter "Authentication/Sign-in Method" (ganz unten unter "Advanced"). – cartant

+0

@cartant ja ich habe das gesetzt. Es ist ein Fehler:/So dachte ich, dass ich einen Spinner haben werde, wenn ich auf den Anmelde-Button klicke, um zu verhindern, dass der User ihn zerquetscht –

Antwort

1

Zuerst ändern Sie Ihre ein Konto per E-Mail-Adresse zu ja.

Wenn Ihre Benutzer drückt die Taste ein Konto zu erstellen, müssen Sie die createUser auszulösen aber vorher müssen Sie die Taste deaktivieren sich die weiteren Anrufe vom selben Nutzer mit gleichen Details

func createMyUser(sender:UIButton!){ 

sender.isEnabled = false 
FIRAuth.auth()?.createUser(withEmail: emailTextField.text!, password: passwordTextField.text!, completion: { (user, err) in 
    .... 
    } 
zu vermeiden

Jetzt, wenn Sie einen Fehler finden, sogar den Netzwerkfehler behandeln diesen Fehler mit errorCodeNetworkError. Und zeigen Sie dem Benutzer eine Warnung an, die besagt, dass ein Netzwerkfehler aufgetreten ist.

if let firebaseError = FIRAuthErrorCode(rawValue: err!._code) { 

        switch firebaseError{ 

        case .errorCodeEmailAlreadyInUse : sender.isEnabled = true 
                 break 

        case .errorCodeNetworkError :  print("Network Error occured!") 

                 sender.isEnabled = true 
                 break 
        default : ..... 

     }} 
+0

sehr informativ, habe nicht daran gedacht. Vielen Dank. für jeden, der darüber stolpert, fügte ich hinzu, indem ich einen schönen Spinner mit dem SwiftSpinner-Framework einwarf, der sich verbirgt, wenn createUser fertig ausgeführt wird –

Verwandte Themen