設定與使用 Firebase Authentication 的指南。當使用者的應用程式需要使用者登入、使用者管理或透過驗證規則保護資料存取時,可使用此技能。
前置需求
- Firebase 專案:透過
npx -y firebase-tools@latest projects:create建立(請參閱firebase-basics)。 - Firebase CLI:已安裝並登入(請參閱
firebase-basics)。
核心概念
Firebase Authentication 提供後端服務、易於使用的 SDK 以及現成的 UI 程式庫,讓您為應用程式進行使用者驗證。
使用者
使用者是能夠登入您應用程式的實體。每個使用者都由一個唯一 ID (uid) 識別,該 ID 在所有提供者中保證唯一。
使用者屬性包括:
uid:唯一識別碼。email:使用者的電子郵件地址(如有)。displayName:使用者的顯示名稱(如有)。photoURL:使用者照片的 URL(如有)。emailVerified:布林值,表示電子郵件是否已驗證。
身分提供者
Firebase Auth 支援多種登入方式:
- 電子郵件/密碼:基本的電子郵件和密碼驗證。
- 聯合身分提供者:Google、Facebook、Twitter、GitHub、Microsoft、Apple 等。
- 電話號碼:基於 SMS 的驗證。
- 匿名:暫時的訪客帳戶,之後可連結到永久帳戶。
- 自訂驗證:與您現有的驗證系統整合。
建議使用 Google 登入作為良好且安全的預設提供者。
權杖
當使用者登入時,他們會收到一個 ID 權杖 (JWT)。此權杖用於在使用者向 Firebase 服務(即時資料庫、Cloud Storage、Firestore)或您自己的後端發出請求時識別使用者。
- ID 權杖:短期有效(1 小時),用於驗證身分。
- 重新整理權杖:長期有效,用於取得新的 ID 權杖。
工作流程
1. 佈建
選項 1:透過 CLI 啟用驗證
只有 Google 登入、匿名驗證和電子郵件/密碼驗證可以透過 CLI 啟用。其他提供者請使用 Firebase 控制台。
在 firebase.json 中新增 'auth' 區塊來設定 Firebase Authentication:
{
"auth": {
"providers": {
"anonymous": true,
"emailPassword": true,
"googleSignIn": {
"oAuthBrandDisplayName": "您的品牌名稱",
"supportEmail": "support@example.com",
"authorizedRedirectUris": ["https://example.com", "http://localhost"]
}
}
}
}
[!NOTE]
如果 Google 登入彈出視窗開啟後立即關閉,並顯示錯誤[firebase_auth/unauthorized-domain],表示該網域未經授權。
對於本機開發,請確保localhost已包含在 Firebase 控制台的授權網域清單中,或透過firebase.json中的authorizedDomains欄位設定。
重要:請勿在授權網域清單中包含通訊協定或連接埠號碼(例如,使用localhost,而不是http://localhost:9090)。
重要:設定 firebase.json 後,您必須將驗證設定部署到 Firebase 後端,變更才會生效。這對於 Google 登入、電子郵件/密碼等驗證提供者自動為您的應用程式平台產生必要的 OAuth 用戶端至關重要。請執行:
npx -y firebase-tools@latest deploy --only auth
選項 2:在控制台中啟用驗證
在 Firebase 控制台中啟用其他提供者。
- 前往 https://console.firebase.google.com/project/_/authentication/providers
- 選取您的專案。
- 啟用所需的登入提供者(例如,電子郵件/密碼、Google)。
2. 客戶端設定與使用
Web
請參閱 references/client_sdk_web.md。
Flutter
請參閱 references/flutter_setup.md。
Android (Kotlin)
請參閱 references/client_sdk_android.md。
3. 安全規則
使用 Firestore/Storage 規則中的 request.auth 來保護您的資料。






