はじめに
Firebaseには複数の認証方法が用意されています。
- パスワード認証
- Googleログイン
- Facebookログイン
- Twitterログイン
これらのログイン方法を個別に実装することもできますが、これらのログイン方法を統一的なUIで提供するfirebase/FirebaseUIがオープンソースライブラリとして公開されています。FirebaseUIは、Android版、iOS版、Web版があります。
この中のiOS(Swift版)を試してみました。
firebase/FirebaseUI-iOSを参考にFirebaseUI-demo(swift版)のサンプルアプリプロジェクトを取得し、Facebookログインを使ってログインするところまで実行しました。
サンプルプロジェクトの取得
ポイントは、pod try FirebaseUI
です。このコマンドを実行するとサンプルアプリのプロジェクトを取得出来ます。
$ git clone https://github.com/firebase/FirebaseUI-iOS.git
Cloning into 'FirebaseUI-iOS'...
$ cd FirebaseUI-iOS
$ pod try FirebaseUI
Podのインストールログがターミナル上に表示された後、objective-c版サンプルを取得するかswift版サンプルを取得するか聞かれます。2を選択しました。
$ ...
$ Trying FirebaseUI
1: FirebaseUIFrameworks/samples/objc/FirebaseUI-demo-objc.xcodeproj
2: FirebaseUIFrameworks/samples/swift/FirebaseUI-demo-swift.xcodeproj
Which project would you like to open
Xcodeでプロジェクトを開くところまで実行してくれます。
Performing CocoaPods Installation
Fetching podspec for `FirebaseUI` from `https://raw.githubusercontent.com/firebase/FirebaseUI-iOS/master/FirebaseUI.podspec`
Installing Bolts (1.8.4)
...
Opening '/private/var/folders/bm/gfw2hl4d3zv5f29zchj4p_z40000gn/T/CocoaPods/Try/FirebaseUI/FirebaseUIFrameworks/samples/swift/FirebaseUI-demo-swift.xcworkspace'
プロジェクト設定
取得したプロジェクトにFacebookログイン情報を設定します。
Twitterログインも同様にできるようですが試していません。
Facebookアプリの設定をします
Facebookログイン用のアプリを作成します。
アプリIDとシークレットキーをメモしておきます。
FirebaseコンソーでFaceebook認証の設定をします
iOS で Facebook ログインを使用して認証する | Firebaseを参考にFirebaseコンソールにおいてFaceebook認証の設定を行います。
FacebookアプリのIDとシークレットキーを設定します。
info.plistのUrl Typesを編集します。
- REVERSED_CLIENT_IDをGoogleService-Info.plistの値に変更します
- fb{your-app-id}のFacebook AppのIDを設定します
実行
FirebaseUIアプリを実行します。
エラーが出なければ成功です。
- Authをタップします
- Sign Inボタンをタップします
- Facebookのログイン情報を設定します