ユーザをデータベースに追加する前にユーザの電子メールを確認する方法はありますか? 私の究極の目標は、ユーザーが最初に電子メールアドレスを入力してから「Verify Email address」ボタンを押すSignUpフォームを作成することです。この時点で確認メールが送信され、ユーザーはメールアドレスを確認するために内部からのリンクをたどります。さて、アプリケーションに戻ると、ユーザーには続行ボタンがあり、電子メールが確認されない場合、ユーザーは登録することができません。そうでなければ、ユーザーは登録することができます。createUserより前のFirebase sendEmailVerification
どうすればよいですか? これまでのドキュメントでは、createUserを作成してcurrentUser.sendEmailVerificationを使用する必要があると書かれていますが、確認の前にユーザーを作成する必要はありません。 完了ブロックの使用についても考えましたが、ユーザーが[続行]ボタンを押すまで、登録を延期する必要があるため、これをどのように動作させるかはわかりません。
おかげ
Auth.auth().createUser(withEmail: email, password: password, completion: {(user: User?, error) in
if error != nil {
print(error!)
return
}
guard let uid = user?.uid else {
return
}
let ref = Database.database().reference(fromURL: "https://project/")
let values = [
"email": email,
"userName": userName,
"name": name,
"birthDate": birthDate,
"phoneNumber": phoneNumber]
let userReference = ref.child("users").child(uid)
userReference.updateChildValues(values, withCompletionBlock: {(err, ref) in
if err != nil{
print(err!)
return
}
print("Successfully added user to database")
})
let usedUserReference = ref.child("users-Used").child(userName)
usedUserReference.setValue(uid, withCompletionBlock: {(err, ref) in
if err != nil{
print(err!)
return
}
print("Successfully added user to cannot be used-again list")
})
})
ユーザーが確認されるまでアクションを実行するだけの場合は、ユーザーがサインインしてそのユーザーのemailVerifiedプロパティがtrueのときにその操作を行います。ユーザーを作成し、電子メールの確認要求を送信する必要はありません。 –