2017-07-30 13 views
0

下記のコードを呼び出すと、次のエラーメッセージが表示されます "この識別子に対応するユーザレコードはありません。
その時点で上記のコードでユーザーを作成していませんか? 作成後に確認メールを使用して、新しいユーザーのメールを確認しようとしています。 おかげFirebaseでユーザを作成した直後に確認メールを送信

let saveAction = UIAlertAction(title: "Create", 
            style: .default) { action in 
            let emailField = alert.textFields![0] 
            let passwordField = alert.textFields![1] 

            Auth.auth().createUser(withEmail: emailField.text!, 
                  password: passwordField.text!) { user, error in 
                  if error == nil { 
                   Auth.auth().signIn(withEmail: self.textFieldLoginEmail.text!, 
                        password: self.textFieldLoginPassword.text!) 
                  } 
                          } 
            Auth.auth().currentUser?.sendEmailVerification { (error) in 
             if let error = error 
             {print("Error when sending Email verification is \(error)")} 
            } 

                 } 

答えて

1

ユーザーを作成するとき、それらは自動的にログインしているあなたは、サインインコールを削除し、完了ハンドラに確認メールの送信を移動できるよう:。

Auth.auth().createUser(withEmail: emailField.text!, 
         password: passwordField.text!) { user, error in 
         if error == nil { 
          Auth.auth().currentUser?.sendEmailVerification { (error) in 
          if let error = error 
           .... 

これがうまくいかない場合は、サインインメソッドにも完了ハンドラがありますので、

Auth.auth().signIn(withEmail: email, password: password) { (user, error) in 

    if error == nil { 
     Auth.auth().currentUser?.sendEmailVerification { (error) in 
     if let error = error 
     // ... 
} 
+0

ありがとうございます。ちょうど私が作成の直後にサインを持っていたことが分かった。あなたの最初の解決策が働いた。 – user2867432

関連する問題