iOS
mBaas
Swift
Firebase

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

More than 1 year has passed since last update.


はじめに

今さら聞けない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)
}


まとめ

今回は、ユーザ登録、ログイン、ログアウトの実装方法について、ご紹介しました。

予め決められたクラスのメソッドを呼ぶだけなので、簡単に実装できて良いですね。