firebase-auth-basics

firebase-auth-basics

热门

设置和使用 Firebase Authentication 的指南。当用户的应用需要用户登录、用户管理或使用身份验证规则保护数据访问时,使用此技能。

357Star
71Fork
更新于 2026/6/20
SKILL.md
readonly只读
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 等。
  • 手机号码:基于短信的身份验证。
  • 匿名:临时访客账户,以后可关联到永久账户。
  • 自定义身份验证:与您现有的身份验证系统集成。

建议使用 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"]
      }
    }
  }
}

[!注意]
如果 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