我正在使用 Firebase auth api
来验证用户电话号码。目前在我的情况下,我有一个屏幕,用户可以在其中输入电话号码,而在第二个屏幕上可以输入 otp。根据文档 firebase
大部分时间自动检索 otp 并启动验证过程。
所以我的问题是它已经在 Firebase Auth SDK 中实现了这个 SMS Retriever API
或者我应该自己实现它来检索 SMS 并自动填充 OTP。
最佳答案
没有。我们不需要管理短信检索场景。
如果设备包含相同的 SIM 卡,它由 onVerificationCompleted(PhoneAuthCredential phoneAuthCredential)
方法中的 PhoneAuthProvider.OnVerificationStateChangedCallbacks
自动管理。
fragment :
private PhoneAuthProvider.OnVerificationStateChangedCallbacks mCallbacks = new PhoneAuthProvider.OnVerificationStateChangedCallbacks() {
@Override
public void onVerificationCompleted(PhoneAuthCredential phoneAuthCredential) {
Toast.makeText(FCMsmsTest.this, "onVerificationCompleted " + phoneAuthCredential.toString(), Toast.LENGTH_SHORT).show();
signInWithPhoneAuthCredential(phoneAuthCredential);
}
@Override
public void onVerificationFailed(FirebaseException e) {
Toast.makeText(FCMsmsTest.this, "onVerificationFailed " + e.toString(), Toast.LENGTH_SHORT).show();
if (e instanceof FirebaseAuthInvalidCredentialsException) {
Toast.makeText(FCMsmsTest.this, "Invalid Request " + e.toString(), Toast.LENGTH_SHORT).show();
} else if (e instanceof FirebaseTooManyRequestsException) {
Toast.makeText(FCMsmsTest.this, "The SMS quota for the project has been exceeded " + e.toString(), Toast.LENGTH_SHORT).show();
}
}
@Override
public void onCodeSent(String verificationId,
PhoneAuthProvider.ForceResendingToken token) {
Toast.makeText(FCMsmsTest.this, "onCodeSent " + verificationId, Toast.LENGTH_SHORT).show();
editText.setText("");
mVerificationId = verificationId;
PhoneAuthProvider.ForceResendingToken mResendToken = token;
showDialog();
}
};
关于android - 在 otp 自动填充的 Firebase 身份验证中是否需要 SMS Retriever API?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53809300/