Firebase电话认证自动发送otp,不填写edittext。otp是在edittext中手动输入的。如何自动检测传入的验证短信并使用用户操作执行验证?
Otp.kt
private fun sendVerificationCode(phone : String){
val options = PhoneAuthOptions.newBuilder(auth)
.setPhoneNumber(phone) // Phone number to verify
.setTimeout(60L, TimeUnit.SECONDS) // Timeout and unit
.setActivity(this) // Activity (for callback binding)
.setCallbacks(callbacks) // OnVerificationStateChangedCallbacks
.build()
PhoneAuthProvider.verifyPhoneNumber(options)
}
private val callbacks = object : PhoneAuthProvider.OnVerificationStateChangedCallbacks(){
override fun onVerificationCompleted(p0: PhoneAuthCredential) {
binding.btnOtpVerify.visible(true)
binding.progressbarVerify.visible(false)
val code = p0.smsCode
if(code != null){
binding.etOtpView.setText(code)
VerifyVerificationCode(code)
signInWithPhoneAuthCredential(p0)
}
}
override fun onVerificationFailed(p0: FirebaseException) {
binding.btnOtpVerify.visible(true)
binding.progressbarVerify.visible(false)
Toast.makeText(this@OtpVerification,p0.message,Toast.LENGTH_LONG).show()
}
override fun onCodeSent(p0: String, p1: PhoneAuthProvider.ForceResendingToken) {
super.onCodeSent(p0, p1)
binding.btnOtpVerify.visible(true)
binding.progressbarVerify.visible(false)
storedVerificationID = p0
resendingToken = p1
}
}
我需要通过短信自动发送你的手机号码,并确认你的手机是否包含传真号码。
要启用自动OTP检测,您可以使用SmsRetriever API和相关的SMS用户同意API。
详细解释的文档可以在这里找到。(包含指向一个参考实现的更多链接,该实现基本上是开箱即用的,所以我这里不包括该代码。)
确保为您的用例选择合适的API。
确保您已在google上启用SafetyNet。
对于自动填充editText,使用函数onVerficationComplted
中的代码
我基本上创建了2个Xml。一个是用户输入电话号码,然后按下按钮,它会转到OTP验证屏幕。但这里的问题是我没有收到来自Firebase的任何OTP,但5秒后我收到一条敬酒消息,验证失败。如果我甚至没有收到消息,它怎么会失败。我还尝试输入另一个号码,以便我可以手动输入代码。但是Firebase没有向我发送OTP。 基本实现---点击忘记密码- 另外,我已经在Firebase中启用了电话身份验证。 Ot
我正在android应用程序中使用Firebase SDK进行手机身份验证OTP验证。这在调试版本上运行良好,但在发布版本上不起作用。 在Firebase项目中添加了我的调试SHA-1指纹。 在Firebase项目中添加了我的发布认证SHA-1指纹。 我还没有发布/发布构建到google play store。 提前谢谢
我试图用手机登录。每次我输入手机号码时,它都会显示这些错误消息并退出应用程序。我使用了https://firebase.flutter.dev/docs/auth/phone留档中的代码。代码几乎与留档相同。 我正在为Java/Flatter/Firebase sdk等所有东西使用更新版本。我还在Firebase应用程序中添加了SHA1密钥,并启用了手机认证。我还尝试了物理和虚拟设备。但每次都是同
我遵循了Flatter fire文档来实现firebase phone auth。我在firebase_auth的早期版本中尝试了这一点,一切似乎都正常,但我启动了一个新的应用程序,并安装了最新版本的firebase_auth,每当我调用firebase verifyNumber方法时,我的应用程序都会显示以下日志: 我的应用程序崩溃的原因可能是什么? 注意:
我知道我们不能更改电子邮件验证模板或短信验证模板。 我已经设置了公共名称,它一直工作到日期。但是今天我得到了另一个文本而不是那个名称的OTP。 123345是你的验证码。egad5adfe/g 最后一个词egad5adfe/g是什么,为什么它代替了面向公众的名称? 最近几天我什么都没变。我不知道为什么会这样。有人能帮忙吗?
我将SHA1和SHA-256添加到firebase控制台&以下是build.gradle文件中的依赖项。