提问者:小点点

使用用户名和密码进行自定义Firebase身份验证


我正在编写一个Android应用程序,其中需要使用用户名密码(在登录部分)以及电子邮件密码用户名(在注册部分)执行身份验证。 用户名和电子邮件需要是唯一的。

Firebase告诉我们如何使用自定义令牌登录用户,该令牌由我们自己的后端生成(在我的例子中是spring boot),但这仅用于登录。

登记部分需要如何办理?

当用户注册时,我需要检查并将数据从后端保存到Firebase中,返回令牌并用这个令牌登录,或者?


共1个答案

匿名用户

当使用自定义身份验证提供程序登录到Firebase时,由您自己的提供程序来处理用户的注册。 此场景中的Firebase身份验证不为用户维护任何信息。

因此您需要存储自己的用户名数据库,(散列)密码以及您维护的其他数据。 当然,您可以使用Firebase的一个数据库(Firestore或Realtime Database)来实现这一目的,但是Firebase身份验证不会知道这一点。

有关用户名+密码提供程序的示例,请参见此repo:https://github.com/firebase/functions-samples/tree/master/username-password-auth

作为一种不同的方法,您还可以使用Firebase现有的email+password提供程序,并在此基础上添加用户名要求。 在这里,您也会将用户名存储在外部数据库中,因为Firebase身份验证不会知道任何有关它的信息。

这是一种更常见的方法,通过查看有关存储唯一用户名的问题,您可以了解更多关于人们在此方面所做的工作。