Firebase Authentication はどこから始めればよいですか?

認証システムがすでに存在する場合

アプリにログイン機能がすでに実装されていて、それを使用して Firebase バックエンド サービスで認証を行う場合は、カスタム認証を使用します。これには、次のいずれかを使用するアプリが含まれます。

  • パスワード ベースのカスタム システムなどの、カスタム開発されたソリューション。
  • サードパーティの ID 管理サービス(Auth0、Okta など)。
  • Google、Facebook、Apple などのフェデレーション ID プロバイダとの既存の統合(フェデレーション ID をまだサポートしていないものの、今後サポートする予定の場合は、次のセクションをご覧ください)。

カスタム認証では、任意のシステムを使用してユーザーのログインを処理し、バックエンドでそのユーザー用の Firebase トークンを作成します。クライアントからそのトークンが送付されるので、それを使用して Firebase で認証します。

iOS+AndroidウェブFlutterUnityC++ 用のドキュメントをご覧ください。

Firebase を使用して認証システムを構築する場合

新しいアプリを作成する場合や、既存のアプリにログイン機能を追加する場合は、認証バックエンドを自分で構築しなくても安全な認証を実装できるライブラリとサービスが Firebase に用意されています。Firebase Authentication は、パスワード、フェデレーション ID プロバイダ、メールリンク、テキスト メッセージを使用したログインのための、完全なバックエンド ソリューションです。

簡単に使えるドロップイン ソリューションを利用したい場合

アプリに最も迅速かつ簡単に認証機能を追加するには、ドロップイン UI ライブラリの FirebaseUI Auth をご利用ください。FirebaseUI を使えば、Firebase Authentication でサポートされているすべてのログイン方法に対応可能な完全なユーザーフローを実装できます。

FirebaseUI Auth はドロップイン ソリューションであるため、UX がニーズに合わないという可能性があります。UX を変更する場合は、オープンソースのライブラリをフォークして独自のバージョンを使用できます。ただし、ログインフローが大きく異なる場合は、次のセクションで説明するように、Firebase SDK を使用して独自のフローを実装することをおすすめします。

iOSAndroidウェブ用の FirebaseUI Auth ドキュメントをご覧ください。

ログイン エクスペリエンスを完全に制御したい場合

アプリのログイン エクスペリエンスを細かく制御するには、独自の認証フローを実装し、Firebase SDK を使用して Firebase の認証サービスを操作します。たとえば、独自のメールアドレスとパスワードのフロー、または Google ログインのフローを作成し、ユーザー認証用にユーザーのメールアドレスとパスワード、あるいは Google ID トークンを Firebase に渡します。

Firebase Authentication SDK のドキュメントをご覧ください。

Firebase サービス
メールアドレスとパスワードによるログイン iOS+ | Android | ウェブ | Flutter | Unity | C++
電話番号によるログイン iOS+ | Android | ウェブ | Flutter | Unity | C++
メールリンクによるログイン iOS+ | Android | ウェブ | Flutter | Unity | C++
フェデレーション ID
Google iOS+ | Android | ウェブ | Flutter | Unity | C++
Facebook iOS+ | Android | ウェブ | Flutter | Unity | C++
Apple iOS+ | Android | ウェブ | Flutter | Unity | C++
Play ゲーム Android | Unity | C++
Game Center iOS+
GitHub iOS+ | Android | ウェブ | Flutter | Unity | C++
Microsoft iOS+ | Android | ウェブ | Unity | C++
Twitter iOS+ | Android | ウェブ | Flutter | Unity | C++
Yahoo iOS+ | Android | ウェブ | Unity | C++

ログイン前のリッチなエクスペリエンスを構築する場合

匿名認証を使用することによって、ユーザーが実際にログインする前に、アプリのログイン後の機能を使用させることができます。匿名の「ログイン」では、実際のアカウントと同じように使用できる、一時的なシングル セッション アカウントを作成します。ユーザーがログインまたは登録した後に、この一時的なアカウントを実際のアカウントにリンクすることによって、ユーザーは前回終了したところから操作を続行できます。

匿名認証は、カスタム認証や Firebase の認証サービスと適切に連動します。

iOS+AndroidウェブFlutterUnityC++ 用のドキュメントをご覧ください。

バックエンドから Firebase サービスにアクセスする場合

サーバーから Firebase サービスにアクセスする場合、Firebase Authentication を使用する必要はありません。代わりに、Admin SDKを使用します。Admin SDK を初期化するときに、特定のユーザーではなく Firebase プロジェクトを表すサービス アカウント認証情報で認証します。これにより、プロジェクトのリソースへの完全アクセス権が付与されます。