我正在使用Firebase开发Android应用。因此,我想使用Firebase Auth。我有以下要求:
前两个是好的,我遵循基本的tutorials。但是,电话号码/密码是此处的问题。 Firebase仅支持电话号码/短信令牌(称为Phone Auth),但没有提及我的情况。我不想破解Firebase并使用其实时数据库而不是Auth'数据库'。有没有更好的方法来实现这一目标?
谢谢。
答案 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()
。忘记密码: