Как проверить, используется ли уже электронная почта и имеет ли она неправильный формат, прежде чем создавать пользователя с помощью Firebase (Swift) - PullRequest
0 голосов
/ 04 января 2019

можно ли проверить, если адрес электронной почты уже используется, прежде чем позвонить на Auth.auth().createUser(withEmail: createEmail...

У меня есть несколько контроллеров представления регистрации, которым пользователи должны будут ввести адрес электронной почты, создать имя пользователя, затем ввести свое имя и создать пароль в этом точном порядке. Однако все они представляют собой отдельные контроллеры представления, кроме имени и пароля (один в одном).

Я бы хотел, чтобы пользователь знал, имеет ли введенный адрес электронной почты правильный формат и уже используется ли он. Единственный способ выяснить, как это сделать, - это когда пользователь проходит через все контроллеры представлений, а затем нажимает кнопку регистрации, которая проверяет наличие ВСЕХ ошибок.

Это код, который у меня есть для конечного контроллера представления, который создает пользователя после того, как все шаги выполнены (нажата кнопка регистрации)

 Auth.auth().createUser(withEmail: createEmail as! String, password: password as! String ) { (user, error) in

        // stop activity indicator
        self.nextButton.setTitle("Sign Up", for: .normal)
        self.activityIndicator.stopAnimating()
        if error == nil && user != nil {
            print("User Created!")
            // If user is created go to Welcome Page
            self.performSegue(withIdentifier: "goToWelcomeVC", sender: self)
            } else {
        // If there is an error creating an account
            print("error creating User: \(error!.localizedDescription)")
            print(error!._code)
            self.handleError(error!)
            return

Это код, с которым я играю для контроллера представления электронной почты. (кнопка продолжения нажата) ** не обращайте внимания на большую часть AuthErrorCode, я пытался найти способ вызвать это и включить его в проверку ошибок ... похоже, мне это не помогает.

// TODO check email
   let invalidEmail = AuthErrorCode.invalidEmail
   let emailTaken = AuthErrorCode.emailAlreadyInUse

    }

    if (emailTextField.text?.isEmpty)! {
        print("textField is empty")
        let alert = UIAlertController(title: "Oops!", message: "Please enter an email address.", preferredStyle: .alert)
        alert.addAction(UIAlertAction(title: " Try Again", style: UIAlertAction.Style.default, handler: nil))
        self.present(alert, animated: true, completion: nil)
    } else {
        self.performSegue(withIdentifier: "goToCreateUsernameVC", sender: self)
    }

}

1 Ответ

0 голосов
/ 07 января 2019

Вам необходимо проверить fetchSignInMethodsForEmail.Он предоставляет API для поиска всех связанных способов входа в систему для предоставленной электронной почты.Если письмо не зарегистрировано, вы получите пустой массив.

...