Я не могу создать новую учетную запись в своем приложении.Кнопка Создать аккаунт ничего не делает - PullRequest
0 голосов
/ 16 мая 2019

Я пытаюсь пройти процедуру регистрации для моего приложения, но когда я нажимаю создать учетную запись, оно ничего не делает. Это просто остается на той же странице. Кнопка создания учетной записи должна вызывать следующий метод:

@IBAction func createAccountPress(_ sender: Any){

        guard usernameField.text != "", emailField_SU.text != "", passwordField_SU.text != "", confirmPasswordField_SU.text != "" else {return}

        if passwordField_SU == confirmPasswordField_SU{
            if let email = emailField_SU.text, let password = passwordField_SU.text{
                Auth.auth().createUser(withEmail: email, password: password)
                { (user,error) in
                    if let error = error{
                        print(error.localizedDescription)
                    }
                    if let user = user {
                        let changeRequest = Auth.auth().currentUser!.createProfileChangeRequest()
                        changeRequest.displayName = self.usernameField.text
                        changeRequest.commitChanges(completion:nil)
                        let imageRef = self.userStorage.child("\(user.user.uid).jpg")
                        let data = self.userImgView.image!.jpegData(compressionQuality:0.5)

                        let uploadTask = imageRef.putData(data!, metadata: nil, completion: {(metadata,error) in
                            if error != nil{
                                print(error?.localizedDescription)
                            }
                            imageRef.downloadURL(completion: {(url, error) in
                                if error != nil {
                                    print(error!.localizedDescription)
                                }
                                if let url = url {
                                    let userInfo: [String:Any] = ["uid": user.user.uid,
                                                                  "username": self.usernameField.text!,
                                                                  "urlToImage":url.absoluteString]

                                    self.ref.child("users").child(user.user.uid).setValue(userInfo)
                                    let vc = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier:"signinVC")
                                    self.present(vc, animated:true, completion:nil)
                                }
                            })
                    })
                    uploadTask.resume()
                        //self.storeUserData(userId: (user.user.uid))
                        //KeychainWrapper.standard.set((user.user.uid), forKey:"uid")
                    self.performSegue(withIdentifier:"backToSignin", sender: nil)
                }
            }
        } else {
            print("Password does not match")
        }
    }
}

Я не получаю никаких ошибок, и приложение тоже вообще не закрывается. Он просто ничего не делает, когда, по крайней мере, приложение должно перейти обратно к виду входа. Что-то не так с моим кодом?

1 Ответ

0 голосов
/ 24 мая 2019

Там есть немного избыточного кода, но я думаю, что это может быть частью проблемы

if passwordField_SU == confirmPasswordField_SU

, поскольку этот код проверяет, совпадает ли пароль поле с паролем подтверждения. поле , которым они не являются, потому что это два разных поля.

Возможно, вы пытаетесь подтвердить, что пользователь ввел один и тот же пароль дважды, и они не пусты

if passwordField_SU.text == confirmPasswordField_SU.text {

и т.д.

...