在 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 實時數據庫和雲存儲安全規則中,您可以從auth變量中獲取登錄用戶的唯一用戶 ID,並使用它來控制用戶可以訪問哪些數據。

您可以通過將身份驗證提供程序憑據鏈接到現有用戶帳戶來允許用戶使用多個身份驗證提供程序登錄您的應用程序。

要註銷用戶,請調用signOut()

await FirebaseAuth.instance.signOut();