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

Flutterでパスワードベースのアカウントを使用してFirebaseで認証する

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

Firebase認証を使用して、ユーザーがメールアドレスとパスワードを使用してFirebaseで認証できるようにすることができます。

あなたが始める前に

  1. まだ行っていない場合は、スタートガイドの手順に従ってください。

  2. 電子メール/パスワードのサインインを有効にする:

    • Firebaseコンソールの[認証]セクションで、[ログイン方法]ページを開きます。
    • [サインイン方法]ページで、電子メール/パスワードのサインイン方法を有効にして、[保存]をクリックします。

パスワードベースのアカウントを作成する

パスワードを使用して新しいユーザーアカウントを作成するには、 createUserWithEmailAndPassword()メソッドを呼び出します。

try {
  final credential = await FirebaseAuth.instance.createUserWithEmailAndPassword(
    email: emailAddress,
    password: password,
  );
} on FirebaseAuthException catch (e) {
  if (e.code == 'weak-password') {
    print('The password provided is too weak.');
  } else if (e.code == 'email-already-in-use') {
    print('The account already exists for that email.');
  }
} catch (e) {
  print(e);
}

通常、これはアプリのサインアップ画面から行います。新しいユーザーがアプリのサインアップフォームを使用してサインアップするときは、新しいアカウントのパスワードが正しく入力され、複雑さの要件を満たしていることを確認するなど、アプリに必要な新しいアカウントの検証手順をすべて完了します。

新しいアカウントが正常に作成された場合、ユーザーもサインインします。認証状態の変更をリッスンしている場合は、新しいイベントがリスナーに送信されます。

新しいアカウントを作成するためのフォローアップとして、ユーザーのメールアドレスを確認できます

メールアドレスとパスワードを使用してユーザーにサインインします

パスワードを使用してユーザーにサインインする手順は、新しいアカウントを作成する手順と同様です。アプリのサインイン画面から、 signInWithEmailAndPassword()を呼び出します。

try {
  final credential = await FirebaseAuth.instance.signInWithEmailAndPassword(
    email: emailAddress,
    password: password
  );
} on FirebaseAuthException catch (e) {
  if (e.code == 'user-not-found') {
    print('No user found for that email.');
  } else if (e.code == 'wrong-password') {
    print('Wrong password provided for that user.');
  }
}

次のステップ

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

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

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

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

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

await FirebaseAuth.instance.signOut();