Firebase Auth使用电话号码和密码

时间:2017-09-21 19:09:40

标签: android firebase authentication firebase-authentication

我正在使用Firebase开发Android应用。因此,我想使用Firebase Auth。我有以下要求:

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

前两个是好的,我遵循基本的tutorials。但是,电话号码/密码是此处的问题。 Firebase仅支持电话号码/短信令牌(称为Phone Auth),但没有提及我的情况。我不想破解Firebase并使用其实时数据库而不是Auth'数据库'。有没有更好的方法来实现这一目标?

谢谢。

4 个答案:

答案 0 :(得分:3)

Firebase手机身份验证正在使用OTP(一次性密码)。这样,用户就没有麻烦记住密码。通过身份验证后,您将进行注册。短信代码充当密码。但那是一次。通常,用户更喜欢这样的行为,您不必记住密码。如果您仍在寻找所需的方式,请参阅此链接并创建自定义身份验证方法。 https://firebase.google.com/docs/auth/android/custom-auth

答案 1 :(得分:2)

我有类似的问题 - 我将firebase auth(电子邮件+密码)和(手机+ otp)结合起来获取手机+密码验证 -

https://medium.com/@shivampesitbng/firebase-phone-password-auth-in-vue-b94f15b8fb3d

答案 2 :(得分:1)

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

像这样的东西(node.js)

admin.auth().getUserByPhoneNumber(phoneNumber)
    .then(user => {
        firebase.auth().signInWithEmailAndPassword(user.email, password);
    });

答案 3 :(得分:1)

使用虚假电子邮件:

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

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

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

注册:

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

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

    AuthCredential credential = EmailAuthProvider.getCredentialWithLink(email, emailLink); auth.getCurrentUser().linkWithCredential(credential);

登录:

  • 输入手机和密码进行登录。转换手机为伪造的电子邮件,然后转换为signInWithEmailAndPassword()

忘记密码:

  • 将用户重定向到新的页面和用户电话验证,以验证用户。如果成功,请输入新密码并更改电子邮件验证的密码。