在 Flutter 上使用以密碼為基礎的帳戶向 Firebase 驗證

您可以使用 Firebase 驗證,讓使用者透過電子郵件地址和密碼向 Firebase 進行驗證。

事前準備

  1. 如果尚未建立新的地圖 ID 和地圖樣式,請按照「開始使用」一文中的步驟進行。

  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 即時資料庫和 Cloud Storage 安全性規則中,您可以從 auth 變數取得已登入使用者的專屬使用者 ID,並用來控管使用者可存取的資料。

您可以將驗證供應商憑證連結至現有使用者帳戶,讓使用者透過多個驗證供應商登入應用程式。

如要登出使用者,請呼叫 signOut()

await FirebaseAuth.instance.signOut();