mcpField
F
firebase-auth-basics

firebase-auth-basics

官方
github.com/firebase数据与数据库491176.0k 次安装1 天前更新
代码仓库

关于 firebase-auth-basics

firebase-auth-basics 是一个 Firebase Authentication 入门 Skill,介绍用户、身份提供方与令牌等核心概念,并说明如何通过 firebase.json 与 CLI 配置认证。它适合为应用接入用户登录的开发者使用。

主要功能

  1. 01说明用户与 uid 等核心概念
  2. 02列出多种身份提供方
  3. 03通过 firebase.json 配置认证并部署
  4. 04提供 Web、Flutter、Android、iOS 客户端指引
  5. 05说明基于 request.auth 的安全规则

适用场景

  1. 01为应用添加邮箱或 Google 登录
  2. 02排查授权域名相关的登录错误

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/firebase/agent-skills --skill firebase-auth-basics

安装后在 Claude Code 中输入/firebase-auth-basics确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
client_sdk_android.md
client_sdk_web.md
flutter_setup.md
ios_setup.md
security_rules.md

详细介绍

前置条件

  • Firebase 项目:通过 npx -y firebase-tools@latest projects:create 创建(参见 firebase-basics)。
  • Firebase CLI:已安装并登录(参见 firebase-basics)。

核心概念

Firebase Authentication 提供后端服务、易于使用的 SDK 和现成的 UI 库,用于验证应用用户的身份。

用户

用户是可以登录应用的实体。每个用户都有一个唯一 ID(uid),且保证在所有提供方中均唯一。用户属性包括:

  • uid:唯一标识符。
  • email:用户的电子邮件地址(如果有)。
  • displayName:用户的显示名称(如果有)。
  • photoURL:用户照片的 URL(如果有)。
  • emailVerified:表示电子邮件是否已验证的布尔值。
身份提供方

Firebase Auth 支持多种登录方式:

  • 电子邮件/密码:基本的电子邮件和密码身份验证。
  • 联合身份提供方:Google、Facebook、Twitter、GitHub、 Microsoft、Apple 等。
  • 电话号码:基于 SMS 的身份验证。
  • 匿名:临时访客账号,之后可以关联到永久账号。
  • 自定义身份验证:与现有身份验证系统集成。

建议将 Google Sign In 作为良好且安全的默认提供方。

令牌

用户登录后,会获得一个 ID Token(JWT)。此令牌用于在向 Firebase 服务(Realtime Database、 Cloud Storage、Firestore)或自有后端发出请求时识别用户。

  • ID Token:有效期较短(1 小时),用于验证身份。
  • Refresh Token:有效期较长,用于获取新的 ID Token。

工作流

1. 配置
选项 1:通过 CLI 启用身份验证

只有 Google Sign In、匿名身份验证和电子邮件/密码身份验证可以通过 CLI 启用。其他提供方请使用 Firebase Console。

在 firebase.json 中添加一个 'auth' 块,以配置 Firebase Authentication:

{
  "auth": {
    "providers": {
      "anonymous": true,
      "emailPassword": true,
      "googleSignIn": {
        "oAuthBrandDisplayName": "Your Brand Name",
        "supportEmail": "[email protected]",
        "authorizedRedirectUris": [
          "https://my-project-id.firebaseapp.com/__/auth/handler",
          "http://localhost"
        ]
      }
    }
  }
}

说明

如果 Google Sign-In 弹出窗口打开后立即关闭,并显示错误 [firebase_auth/unauthorized-domain],这表示该域名未获授权。进行本地开发时,请将 http://localhost 添加到 firebase.json 中的 authorizedRedirectUris(或确保 Firebase Console 中 Authentication > Settings > Authorized domains 下的 Authorized Domains 列表包含 localhost)。重要:请勿在 authorizedRedirectUris 中包含端口号(例如,使用 http://localhost,而非 http://localhost:9090 或 http://localhost:4000),也不要在 Console 的 Authorized Domains 列表中包含协议或端口号(使用 localhost)。在 authorizedRedirectUris 中包含端口号会导致 firebase deploy --only auth 因 INVALID_AUTHORIZED_DOMAIN 而失败。

重要:配置 firebase.json 后,必须将身份验证配置部署到 Firebase 后端,才能使更改生效。这对于 Google Sign-In、电子邮件/密码等身份验证提供方至关重要,它们会为应用平台自动生成所需的 OAuth 客户端。运行:

npx -y firebase-tools@latest deploy --only auth
选项 2:在 Console 中启用身份验证

在 Firebase Console 中启用其他提供方。

  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。

iOS(Swift) 请参阅 references/ios_setup.md。

3. 安全规则

在 Firestore/Storage 规则中使用 request.auth 保护数据。

请参阅 references/security_rules.md。

评论

支持 Markdown