始める前に
- Firebase を iOS プロジェクトに追加します。
- 次のポッドを
Podfile
にインクルードします。pod 'Firebase/Auth'
- 次の操作を行って、プロジェクトのサーバーキーを取得します。
- プロジェクトの設定の [サービス アカウント] ページに移動します。
- [サービス アカウント] ページの [Firebase Admin SDK] セクションの一番下にある [新しい秘密鍵の生成] をクリックします。
- 新しいサービス アカウントの公開鍵 / 非公開鍵のペアが、お使いのパソコンに自動的に保存されます。認証サーバーにこのファイルをコピーします。
Firebase で認証する
- Firebase モジュールを
UIApplicationDelegate
にインポートします。Swift
import Firebase
Objective-C
@import Firebase;
FirebaseApp
共有インスタンスを構成します。通常はアプリのapplication:didFinishLaunchingWithOptions:
メソッドで行います。Swift
// Use Firebase library to configure APIs FirebaseApp.configure()
Objective-C
// Use Firebase library to configure APIs [FIRApp configure];
- ユーザーがアプリにログインしたら、そのユーザーのログイン認証情報(たとえば、ユーザー名とパスワード)を認証サーバーに送信します。サーバーにより認証情報が確認され、認証情報が有効な場合は、カスタム トークンが返されます。
- 認証サーバーからカスタム トークンを受信したら、
signInWithCustomToken
に渡してユーザーのログインを行います。Swift
Auth.auth().signIn(withCustomToken: customToken ?? "") { user, error in // ... }
Objective-C
[[FIRAuth auth] signInWithCustomToken:customToken completion:^(FIRAuthDataResult * _Nullable authResult, NSError * _Nullable error) { // ... }];
次のステップ
ユーザーが初めてログインすると、新しいユーザー アカウントが作成され、ユーザーがログインに使用した認証情報(ユーザー名とパスワード、電話番号、または認証プロバイダ情報)にアカウントがリンクされます。この新しいアカウントは Firebase プロジェクトの一部として保存され、ユーザーのログイン方法にかかわらず、プロジェクトのすべてのアプリでユーザーを識別するために使用できます。
-
アプリでは、
FIRUser
オブジェクトからユーザーの基本的なプロフィール情報を取得できます。ユーザーの管理についての記事をご覧ください。 Firebase Realtime Database と Cloud Storage のセキュリティ ルールでは、ログイン済みユーザーの一意のユーザー ID を
auth
変数から取得し、それを使用して、ユーザーがアクセスできるデータを管理できます。
既存のユーザー アカウントに認証プロバイダの認証情報をリンクすることで、ユーザーは複数の認証プロバイダを使用してアプリにログインできるようになります。
ユーザーのログアウトを行うには、signOut:
を呼び出します。
Swift
let firebaseAuth = Auth.auth() do { try firebaseAuth.signOut() } catch let signOutError as NSError { print("Error signing out: %@", signOutError) }
Objective-C
NSError *signOutError; BOOL status = [[FIRAuth auth] signOut:&signOutError]; if (!status) { NSLog(@"Error signing out: %@", signOutError); return; }
さまざまな認証エラーに対応できるようにエラー処理コードを追加することもできます。エラーの処理をご覧ください。