LoginSignup
23
26

More than 5 years have passed since last update.

[Swift版] 今さら聞けないFirebase② Authentication(認証)

Last updated at Posted at 2016-07-30

はじめに

今さら聞けないFirebaseシリーズ第二弾は、Authentication(認証)の実装方法についてご紹介します。

Authenticationができること

・メール、パスワードを使ったユーザ管理、ユーザ認証
・OpenIDを使ったユーザ認証(Google/Twitter/facebook/Github)

今回は、メールとパスワードを利用したユーザ管理及びユーザ認証をやってみます。

導入編はこちら

やること

・Authenticationの導入方法について
・ユーザ登録、ログイン、ログアウトのサンプルコードのご紹介

やらないこと

Firebaseの導入について
・会員登録画面、ログイン画面等の画面について
エラーハンドリングについて

いざ、チャレンジ!

1. 前準備

1.1. Podfileを開いて、以下を追加する

Podfile
pod 'Firebase/Auth'

1.2. ログイン方法を指定する

Firebase consoleのAuthenticationを開き、ログイン方法を指定します

01-01.png

今回は、メール、パスワードでの認証を指定する

01-02.png

正しく指定できると、下記のような画面になります
01-03.png

2. 実装

2.1. ユーザ登録

ユーザ登録は、下記のとおりです。

        let email = "hogehoge@gmail.com"
        let password = "barbarbar"

        FIRAuth.auth()?.createUserWithEmail(email, password: password) { (user, error) in
            // ...

            if let error = error {

                //TODO : エラーハンドリング                
                print(error.code)

                // 17007 : 登録済みのメール
                // 17008 : メールの書式が間違っている
                // 17026 : パスワードが短い(6文字以上)
                // 17999 : メールまたは、パスワードが不正(空文字を指定した場合)

                return
            }

            if let user = user {
                print(user.uid)
                print(user.email)
            }
        }

正しく会員登録ができると、管理画面上でもユーザを確認することができます。
最大で500ユーザまでのようです。(少ないですね。。)

スクリーンショット 2016-07-30 10.14.23.png

2.2. ログイン

ログインは、下記のとおりです。
ログイン中にログインしても、エラーにはならないようです。

        FIRAuth.auth()?.signInWithEmail(email, password: password) { (user, error) in

            if let error = error {

                //TODO : エラーハンドリング
                print(error.code)

                // 17009: パスワードが間違っている
                // 17011: ユーザが存在しない   

                return             
            }

            if let user = user {
                print(user.uid)
            }
        }

2.3. ログアウト

ログアウトは、下記のとおりです。
ログアウト中にログアウトしても、エラーにはならないようです。

        do{
            try FIRAuth.auth()?.signOut()
        }catch let error as NSError{
            print(error)
        }

まとめ

今回は、ユーザ登録、ログイン、ログアウトの実装方法について、ご紹介しました。
予め決められたクラスのメソッドを呼ぶだけなので、簡単に実装できて良いですね。

23
26
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
23
26