是否可以使用Phone Auth来验证电话号码?我的用户已经与其他提供商登录。我只需要确保他们输入的号码有效。
答案 0 :(得分:0)
您可以使用Firebase的PhoneAuthProvider执行此操作,该活动将向用户电话号码发送一次性密码短信。
本文档中给出了实现:Firebase phone authentication
答案 1 :(得分:0)
让我们说,如果不使用手动验证在Firebase中创建与该号码链接的新用户,则无法验证电话号码 但是您可以通过以下方式立即取消手机与用户帐户的链接:
FirebaseAuth.getInstance().getCurrentUser().
unlink(PhoneAuthProvider.PROVIDER_ID)
.addOnCompleteListener(this);
就像:
final PhoneAuthCredential credential = PhoneAuthProvider.getCredential(mVerificationId, scode);
mAuth.signInWithCredential(credential).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
FirebaseAuth.getInstance().getCurrentUser().
unlink(PhoneAuthProvider.PROVIDER_ID)
.addOnCompleteListener(this);
register_user(sname,semail,sphone,scode, spass); // this if you wanna register with a different method
}
}
});
并且可以自动验证Google Play服务(在新手机中)。当您的onVerificationCompleted(PhoneAuthCredential)
中的PhoneAuthProvider.OnVerificationStateChangedCallbacks
被调用时。并且在这里,验证无需用户输入任何内容即可完成,并且电话不会链接到新的用户帐户。
PhoneAuthProvider.getInstance().verifyPhoneNumber(sphone, 60, TimeUnit.SECONDS, AuthActivity.this, new PhoneAuthProvider.OnVerificationStateChangedCallbacks() {
@Override
public void onVerificationCompleted(PhoneAuthCredential phoneAuthCredential) {
register_user(sname,semail,sphone,scode, spass); // this if you wanna register with a different method
}
@Override
public void onVerificationFailed(FirebaseException e) {
}
@Override
public void onCodeSent(String verificationId, PhoneAuthProvider.ForceResendingToken token) {
// Save verification ID and resending token so we can use them later
mVerificationId = verificationId;
mResendToken = token;
// ...
}
});
我认为Google应该允许开发人员在不创建用户帐户的情况下验证电话,这会很有帮助