firebase-auth-basics

firebase-auth-basics

熱門

設定與使用 Firebase Authentication 的指南。當使用者的應用程式需要使用者登入、使用者管理或透過驗證規則保護資料存取時,可使用此技能。

357星標
71分支
更新於 2026/6/20
SKILL.md
readonlyread-only
name
firebase-auth-basics
description

設定與使用 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 控制台中啟用其他提供者。

  1. 前往 https://console.firebase.google.com/project/_/authentication/providers
  2. 選取您的專案。
  3. 啟用所需的登入提供者(例如,電子郵件/密碼、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 來保護您的資料。

請參閱 references/security_rules.md