关于本文
本文是通过利用生成式 AI 的自动化生成流程创建的。
我们将参考 Firebase 官方文档,梳理如何将用于确认用户身份的登录功能嵌入 Web 和移动应用的 Firebase Authentication。同时也会解释它与 Google Cloud IAM 权限管理的目的不同的这一点。
信息核实基准日:2026-09-19
首先用一句话概括
Firebase Authentication 是一个为应用添加用户登录功能的服务。可以通过 SDK 使用电子邮箱与密码、手机号码、Google 等外部身份提供商以及匿名身份验证等多种方法。
身份验证(Authentication)是指“确认该用户是谁”。它与像 IAM 那样关于“Cloud 管理员可以操作什么”的管理权限需分开考虑。
在 Google 整体中的定位
| 视角 | Firebase Authentication |
|---|---|
| 大分类 | Firebase / 应用开发 / Identity |
| 核心目的 | 将安全的用户登录功能嵌入 Web 和移动应用 |
| 组件 | 在应用入口处建立用户ID的身份验证层 |
| 配合使用的组件 | Cloud Firestore、Realtime Database、Firebase Hosting、App Check |
| 主要使用者 | 应用用户、开发者、服务运营商 |
sequenceDiagram participant U as 利用者 participant A as Web/モバイルアプリ participant F as Firebase Authentication participant D as Firestore等 U->>A: サインイン A->>F: 認証要求 F-->>A: 認証済みユーザー情報 A->>D: 認証状態を使ってデータ要求 D-->>A: Security Rules等に基づく結果
能实现什么?
Firebase Authentication 支持密码、电话号码、Google 等联合身份提供商(使用外部身份服务的登录方式)。您还可以将其设计为以匿名用户身份开始,随后再迁移到常规账户。
由于提供了 SDK 和 UI 库,与完全自研身份验证服务器相比,它更容易集成到应用功能中。不过,添加登录界面并不意味着安全性设计已经完成。
按使用者划分的实际应用示例
普通用户与文职人员
在使用服务时,您可能会看到“使用 Google 登录”或“使用电子邮件登录”等选项。在这些选项的背后,它可用于身份验证,以确保应用能够安全地隔离每个用户的数据。
IT 管理员与服务运营商
负责确定允许哪些登录提供商、是否需要 MFA(多因素身份验证),以及如何管理日志和用户。由于企业需求可能需要通过升级到 Identity Platform 来获取附加功能,因此请在官方页面上查看当前的定价和功能。
开发者
使用 Web、Android、iOS、Flutter 等 SDK 获取登录状态,并结合 Firestore 等安全规则(Security Rules)来控制基于用户的访问权限。
它与 IAM 或服务账号有什么区别?
| 机制 | 主要对“谁”进行身份验证和控制? | 典型用途 |
|---|---|---|
| Firebase Authentication | 应用程序的最终用户 | 登录、按用户划分的数据 |
| Google Cloud IAM | 管理员、开发人员、工作负载等 | Cloud 资源的操纵权限 |
| 服务账号 (Service Account) | 应用程序或自动化处理等非人类主体 | 服务器之间及自动化处理的身份验证 |
如果将这三者都视为相同的“Google 登录”,很容易导致设计错误。
有 Microsoft 使用经验的人应如何理解?
在 Microsoft 侧,人们常常倾向于将其与面向应用程序的客户身份基础架构进行对比,但产品体系、定价和管理模型并非完全一致。在明确“对应用程序终端用户进行身份验证的组件”这一共同角色后,再根据具体需求与 Microsoft Entra External ID 等现有功能进行对比。
Firebase 项目、API 与定价
Firebase Authentication 是作为 Firebase 项目的一部分来使用的。由于所使用的身份验证方法、规模以及是否升级到 Identity Platform 会改变相关条件,切勿仅凭文章记忆固定价格,请务必查看官方定价页面。特别是电话认证,请务必确认地区、费用以及限制的最新信息。
安全性
切勿仅在客户端显示“已登录”状态就草草结束访问控制。
在 Firestore 等服务中妥善配置安全规则 (Security Rules)。
切勿将管理用私钥或服务账号 JSON 嵌入到 Web/移动端应用程序中。
切勿误认为 API 密钥与私钥相同,请遵循 Firebase 官方对 API 密钥的处理方式并确认各项 API 的限制。
切勿将生产环境用户的电子邮件地址或令牌 (token) 保存到公开的 GitHub 或测试数据中。
安全地进行测试
首先应在 Firebase Console 中创建一个用于验证的项目,阅读官方的 Authentication 接入指南,并仅使用测试用户来确认运行情况。
在编写代码前,确认以下三点会更安全。
要启用哪些登录提供商(Sign-in provider)。
认证后允许访问的数据是什么。
Firestore 等安全规则(Security Rules)如何处理未认证用户。
成功条件不仅是“显示登录页面”,而是登录后的用户识别和数据访问控制符合预期。如果要改动一个地方,可以在验证环境中切换已认证/未认证两种状态,确认访问结果是否发生变化。
Google官方信息
接下来该做什么?
在用于验证的 Firebase 项目中只选择一种要使用的登录提供商,并根据官方快速入门(Quickstart)用测试用户进行确认。同时,也要设计好认证后要使用的 Firestore 等安全规则。
Papanda TRY:通过浏览器卡片查看登录状态
在不使用实际凭证(credential)的情况下,用 JavaScript 还原已登出(signed-out)→提供商选择→已登录(signed-in)的状态转换。将其作为理解 Firebase Authentication 提供的是认证后端/SDK而非“UI本身”的教材。
归根结底是什么样的服务?
Firebase Authentication 是一个用于确认应用使用者身份,并将其与每个用户的体验和数据访问关联起来的认证组件。它与面向云管理员的 IAM 职责不同。最开始通过验证项目和测试用户,连同认证前后的访问差异一起确认才是安全的。

