Google I/O 2022 で発表された Firebase の最新情報をご覧ください。詳細

カスタム認証システムを使用してFirebaseで認証する

ユーザーが正常にサインインしたときにカスタム署名済みトークンを生成するように認証サーバーを変更することで、Firebase認証をカスタム認証システムと統合できます。アプリはこのトークンを受け取り、Firebaseでの認証に使用します。

あなたが始める前に

  1. まだ行っていない場合は、スタートガイドの手順に従ってください。
  2. FirebaseAdminSDKをインストールして設定します。 Firebaseプロジェクトの正しいクレデンシャルを使用してSDKを初期化してください。

Firebaseで認証する

  1. ユーザーがアプリにサインインするときは、サインイン資格情報(ユーザー名やパスワードなど)を認証サーバーに送信します。サーバーはクレデンシャルを確認し、有効な場合はカスタムFirebaseトークンを作成して、トークンをアプリに送り返します。

  2. 認証サーバーからカスタムトークンを受け取ったら、それをsignInWithCustomToken()に渡して、ユーザーにサインインします。

    try {
        final userCredential =
            await FirebaseAuth.instance.signInWithCustomToken(token);
        print("Sign-in successful.");
    } on FirebaseAuthException catch (e) {
        switch (e.code) {
            case "invalid-custom-token":
                print("The supplied token is not a Firebase custom auth token.");
                break;
            case "custom-token-mismatch":
                print("The supplied token is for a different Firebase project.");
                break;
            default:
                print("Unkown error.");
        }
    }
    

次のステップ

ユーザーが新しいアカウントを作成すると、このアカウントはFirebaseプロジェクトの一部として保存され、ユーザーが使用したログイン方法に関係なく、プロジェクト内のすべてのアプリでユーザーを識別するために使用できます。

アプリでは、 Userオブジェクトからユーザーの基本的なプロファイル情報を取得できます。ユーザーの管理を参照してください。

Firebase RealtimeDatabaseとCloudStorageのセキュリティルールでは、ログインしたユーザーの一意のユーザーIDをauth変数から取得し、それを使用してユーザーがアクセスできるデータを制御できます。

認証プロバイダーのクレデンシャルを既存のユーザーアカウントにリンクすることで、ユーザーが複数の認証プロバイダーを使用してアプリにサインインできるようにすることができます。

ユーザーをサインアウトするには、 signOut()を呼び出します。

await FirebaseAuth.instance.signOut();