前提・実現したいこと
3日程つまづいております。どうか、ご教授いただけませんでしょうか・・・。
Firebaseを利用して、メールアドレスを使用したユーザー登録機能を作っています。
userName,EmailAddress,Passwordが正しく入力されれば新規登録が完了する機能です。
バリデーションによるエラーメッセージを表示させる機能を実装中に以下の問題が発生しました。
発生している問題
メールアドレス、パスワード両方にバリデーションに伴うエラーが生じている場合、メールアドレスのエラー文しか表示されない。 下記のコードの、errorStringに発生しているエラー文が全て入るコードにするためには、どこを変更すれば良いのでしょうか? ご教授いただけますと幸いです。 変数の定義等は載せておりませんが、そこに問題はなさそうだと考え割愛しております。 もし、掲載の必要がありそうであればご指摘いただけますと幸いです。
該当のソースコード
swift
1 @IBAction func registrationButton(_ sender: Any) { 2 let email = mailAddressRegistration.text 3 let password = passwordRegistration.text 4 let name = userNameRegistration.text 5 6 7 if userNameRegistration.text!.isEmpty{ 8 userNameError.text = "ユーザー名を入力してください。" 9 userNameError.textColor = .red 10 11 } 12 13 14 if mailAddressRegistration.text!.isEmpty{ 15 emailAddressError.text = "メールアドレスを入力してください。" 16 emailAddressError.textColor = .red 17 } 18 19 20 if passwordRegistration.text!.isEmpty{ 21 passWordError.text = "パスワードを入力してください。" 22 passWordError.textColor = .red 23 } 24 25 if userNameRegistration.text?.isEmpty != true && mailAddressRegistration.text?.isEmpty != true && passwordRegistration.text?.isEmpty != true{ 26 Auth.auth().createUser(withEmail: email!, password: password!){ [self](result, error) in 27 28 print("sam") 29 if error != nil{ 30 userNameError.textColor = .systemTeal 31 emailAddressError.textColor = .systemTeal 32 passWordError.textColor = .systemTeal 33 errorString = error!.localizedDescription 34 switch errorString { 35 case "The email address is badly formatted.": 36 emailAddressError.text = "正しいメールアドレスを入力してください。" 37 emailAddressError.textColor = .red 38 case "The password must be 6 characters long or more.": 39 passWordError.text = "パスワードは、6文字以上で入力してください。" 40 passWordError.textColor = .red 41 default: 42 return 43 } 44 45 }else{ 46 47 if let user = result?.user{ 48 let req = user.createProfileChangeRequest() 49 req.displayName = name 50 req.commitChanges(){ error in 51 if error == nil{ 52 print("プロフィール登録完了") 53 self.performSegue(withIdentifier: "topPageFromResistration", sender: nil) 54 55 }else{ 56 print(error.debugDescription) 57 58 } 59 } 60 } 61 } 62 } 63 } 64 }
試したこと
ここに問題に対して試したことを記載してください。
解決に向けてググっているのですが、記事が出てこず質問させていただいております。
補足情報(FW/ツールのバージョンなど)
xcode:12.5
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/23 02:31