使用电话号码和密码的 Firebase 身份验证

Tom*_*m11 11 authentication android firebase firebase-authentication

我正在使用 Firebase 开发 Android 应用程序。因此,我想使用 Firebase 身份验证。我有以下要求:

  • 使用 Facebook 注册/登录
  • 使用电子邮件/密码注册/登录
  • 使用电话号码/密码注册/登录

前两个还可以,我是按照基本教程来的。但是,电话号码/密码是这里的问题。Firebase 仅支持电话号码/短信令牌(称为电话身份验证),但没有提及我的情况。我不想破解 Firebase 并使用其实时数据库而不是 Auth 'database'。有没有更好的方法来实现这一目标?

谢谢你。

Shu*_*pta 8

使用虚假电子邮件:

嗯,Firebase 不支持使用手机号码和密码登录,但支持电子邮件和密码。因此,您可以使用您的手机号码创建虚假电子邮件。

IE:78******69@yourdomain.com

此外,您可以使用它创建完整的身份验证系统。

登记:

  • 输入用户手机号码和密码,然后进入下一页。

  • 现在使用 Firebase 电话身份验证 (OTP) 来创建用户。如果处理成功,请在后台链接虚假电子邮件、密码凭据。

    AuthCredential credential = EmailAuthProvider.getCredential(email, password); auth.getCurrentUser().linkWithCredential(credential);

登录:

  • 输入手机号码和密码即可登录。转换手机中的假电子邮件,然后signInWithEmailAndPassword()

忘记密码:

  • 将用户重定向到新页面并通过用户电话身份验证来验证用户。如果成功,请输入新密码并更改邮箱验证密码。


Alv*_*vis 6

如果您同时拥有用户的电子邮件和电话,并且可以使用 Admin SDK,那么也许您可以将用户电话号码交换到他的电子邮件并在后台使用电子邮件和密码登录。

像这样的东西(node.js)

admin.auth().getUserByPhoneNumber(phoneNumber)
    .then(user => {
        firebase.auth().signInWithEmailAndPassword(user.email, password);
    });
Run Code Online (Sandbox Code Playgroud)


Mal*_*san 5

Firebase 电话身份验证使用 OTP(一次性密码)。这样用户就可以轻松记住密码。通过身份验证后,您将被注册。短信代码充当密码。但这只是一次。通常,用户更喜欢这种不必记住密码的行为。如果您仍在寻找所需的方式,请查看此链接并创建自定义身份验证方法。 https://firebase.google.com/docs/auth/android/custom-auth