我从哪里开始使用 Firebase 身份验证?

我已经有身份验证系统

如果您的应用已有登录实现,而您想使用它进行 Firebase 后端服务身份验证,请使用自定义身份验证。使用以下任一身份验证方式的应用均可采用此方法:

  • 定制解决方案,例如基于密码的自定义系统。
  • 第三方身份管理服务,例如 Auth0 或 OKta。
  • 与联合身份提供方(如 Google、Facebook 或 Apple)的现有集成。(如果您还不支持联合身份,但希望使用,请参阅下一部分。)

借助自定义身份验证,您可以让用户通过您选择的系统登录,在后端为用户创建 Firebase 令牌,然后使用客户端提供的令牌进行 Firebase 身份验证。

请参阅适用于 iOS+AndroidWebFlutterUnityC++ 的文档。

我想使用 Firebase 构建身份验证系统

如果您要构建新应用或向现有应用添加登录机制,可使用 Firebase 提供的库和服务实现安全身份验证,而无需自行构建身份验证后端。Firebase Authentication 是一个完整的后端解决方案,可供用户使用密码、联合身份提供方、电子邮件链接和短信进行登录。

我需要一个易于使用的普适性解决方案

如需向应用添加身份验证,最快捷、简单的方法是使用 FirebaseUI 身份验证,这是一个普适性界面库。FirebaseUI 为 Firebase Authentication 支持的所有登录方法实现了完整的用户流。

由于 FirebaseUI Auth 是普适性解决方案,因此它提供的特定用户体验可能无法满足您的需求。如果要改变用户体验,您可以复刻此开源库,并根据需要进行修改。但是,对于截然不同的登录流程,您可能更希望通过 Firebase SDK 实现自己的流程(如下一部分所述)。

请参阅适用于 iOSAndroidWeb 的 FirebaseUI Auth 文档。

我想完全掌控登录体验

为了更好地控制您应用的登录体验,您可以实现自己的身份验证流程,并使用 Firebase SDK 来处理 Firebase 的身份验证服务。例如,您可以构建自己的电子邮件地址和密码流程或 Google 登录流程,并将用户的电子邮件地址和密码或 Google ID 令牌传递给 Firebase,以对用户进行身份验证。

请参阅 Firebase Authentication SDK 文档:

Firebase 服务
电子邮件地址和密码登录 iOS+ | Android | Web | Flutter | Unity | C++
电话号码登录 iOS+ | Android | Web | Flutter | Unity | C++
电子邮件链接登录 iOS+ | Android | Web | Flutter | Unity | C++
联合身份
Google iOS+ | Android | Web | Flutter | Unity | C++
Facebook iOS+ | Android | Web | Flutter | Unity | C++
Apple iOS+ | Android | Web | Flutter | Unity | C++
Play 游戏 Android | Unity | C++
Game Center iOS+
GitHub iOS+ | Android | Web | Flutter | Unity | C++
Microsoft iOS+ | Android | Web | Unity | C++
Twitter iOS+ | Android | Web | Flutter | Unity | C++
Yahoo iOS+ | Android | Web | Unity | C++

我想打造丰富的登录前体验

您可以利用匿名身份验证,让用户在实际登录前就能使用应用的已登录功能。借助匿名“登录”功能,您可以创建临时的单会话账号,将其当作真实账号一样来使用。然后,在用户登录或注册后,将临时账号与真实账号相关联,使其能够从中断的地方继续操作。

“匿名身份验证”可与“自定义身份验证”或 Firebase 的任何身份验证服务搭配使用。

请参阅适用于 iOS+AndroidWebFlutterUnityC++ 的文档。

我想从我的后端访问 Firebase 服务

若要从服务器访问 Firebase 服务,您无需使用 Firebase Authentication。请改用 Admin SDK。初始化 Admin SDK 时,请使用服务账号凭据进行身份验证,这些凭据代表您的 Firebase 项目而非特定用户,会授予对项目资源的完整访问权限。