
タイトル通り、iOSアプリでFirebaseAuthのユーザーアカウント作成と画面遷移を同時に行うというのをやります。
今回はボタンを押すタイミングでこれらが実行されるようにします(@IBAction{}内に書いていきます)
UIはこのようなものを想定しています。
メールアドレスとパスワードのtextfieldは以下のように
emailTextField/passwordTextFieldと定義しています。
コード
まずは完成したコードを載っけておきます。
@IBAction func next()は「次へ」ボタンのアクションです。
66行目以降の値渡しのくだりは関係ないので無視していいです。
一応文字でも該当コードを置いておきます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
@IBAction func next(_ sender: Any) { //メアドとパスでアカウント作成 Auth.auth().createUser(withEmail: emailTextField.text!, password: passwordTextField.text!) { (user, error) in if error != nil { // エラー } //navigationControllerで画面遷移 let UserNameVC = self.storyboard?.instantiateViewController(withIdentifier: "unvc") as! UserNameViewController } |
アドレスとパスワードでアカウントを作成
Auth.auth().createUser(withEmail: メールアドレス, password: パスワード) { (user, error) in }
で、アカウントが作成できます。
作成されたアカウントはFirebaseのコンソール画面のAuthenticationタブで確認できます。
アカウントの作成に成功すると、{ (user, error) in }
のuserに値が入り、失敗するとerrorに値が入ります。
クロージャ内でif文を作り、if error != nil {}
のようにしてエラー処理を書くと良いでしょう。
アカウント作成と同時に画面遷移する場合、@IBActionのnextメソッド内で画面遷移の処理を書きます。
今回はnavigationControllerで遷移していますが、segueで遷移すると通信状況が悪かった場合などに、アカウントが作成される前に画面遷移してしまうことがあるようなので、アカウントが作られた後に遷移するようにnavigationControllerで遷移しています。
ちなみに、UserNameViewControllerに遷移します。
fa-chevron-circle-rightコード
let UserNameVC = self.storyboard?.instantiateViewController(withIdentifier: "unvc") as! UserNameViewController
遷移したいUserNameViewControllerをlet UserNameVC
として定義したいので、= self.storyboard?.instantiateViewController(withIdentifier: "unvc") as! UserNameViewController
とするとnavigationControllerでの画面遷移が出来ます。
この時、UserNameViewControllerのIdentityには(withIdentifier: "")
の""内に書いた識別子(今回の場合はunvc
)を入れて「Use Storyboard ID」にチェックを入れてください。
これでアカウント作成と同時に画面遷移ができます。