我正在编写一个Android应用程序,其中需要使用用户名
和密码
(在登录部分)以及电子邮件
,密码
和用户名
(在注册部分)执行身份验证。 用户名和电子邮件需要是唯一的。
Firebase告诉我们如何使用自定义令牌登录用户,该令牌由我们自己的后端生成(在我的例子中是spring boot),但这仅用于登录。
登记部分需要如何办理?
当用户注册时,我需要检查并将数据从后端保存到Firebase中,返回令牌并用这个令牌登录,或者?
当使用自定义身份验证提供程序登录到Firebase时,由您自己的提供程序来处理用户的注册。 此场景中的Firebase身份验证不为用户维护任何信息。
因此您需要存储自己的用户名数据库,(散列)密码以及您维护的其他数据。 当然,您可以使用Firebase的一个数据库(Firestore或Realtime Database)来实现这一目的,但是Firebase身份验证不会知道这一点。
有关用户名+密码提供程序的示例,请参见此repo:https://github.com/firebase/functions-samples/tree/master/username-password-auth
作为一种不同的方法,您还可以使用Firebase现有的email+password提供程序,并在此基础上添加用户名要求。 在这里,您也会将用户名存储在外部数据库中,因为Firebase身份验证不会知道任何有关它的信息。
这是一种更常见的方法,通过查看有关存储唯一用户名的问题,您可以了解更多关于人们在此方面所做的工作。