Android Studio Java开发:PhoneAuthProvider.verifyPhoneNumber方法已弃用该如何处理
解决PhoneAuthProvider.verifyPhoneNumber()方法弃用问题
Firebase Auth已弃用PhoneAuthProvider.getInstance().verifyPhoneNumber()的重载方法,官方推荐使用PhoneAuthOptions结合Builder模式实现电话号码验证,步骤如下:
1. 构建PhoneAuthOptions实例
通过PhoneAuthOptions.newBuilder()配置验证所需参数,包括电话号码、超时时间、关联的Activity/Fragment及回调接口:
Kotlin示例:
import com.google.firebase.auth.FirebaseAuth import com.google.firebase.auth.PhoneAuthProvider import java.util.concurrent.TimeUnit // 获取FirebaseAuth实例 val firebaseAuth = FirebaseAuth.getInstance() // 构建PhoneAuthOptions val phoneAuthOptions = PhoneAuthOptions.newBuilder(firebaseAuth) .setPhoneNumber("+8613xxxxxxxxx") // 目标电话号码,需带国际区号 .setTimeout(60L, TimeUnit.SECONDS) // 验证码超时时间 .setActivity(this) // 绑定当前Activity,用于弹出验证码自动填充弹窗 .setCallbacks(object : PhoneAuthProvider.OnVerificationStateChangedCallbacks() { override fun onVerificationCompleted(credential: PhoneAuthCredential) { // 验证自动完成(如设备已保存号码或运营商自动验证),可直接用credential登录 } override fun onVerificationFailed(e: FirebaseException) { // 验证失败处理,比如号码格式错误、网络问题等 } override fun onCodeSent( verificationId: String, token: PhoneAuthProvider.ForceResendingToken ) { // 验证码发送成功,保存verificationId和token,用于后续手动输入验证码后的验证 } }) .build()
Java示例:
import com.google.firebase.auth.FirebaseAuth; import com.google.firebase.auth.PhoneAuthProvider; import java.util.concurrent.TimeUnit; // 获取FirebaseAuth实例 FirebaseAuth firebaseAuth = FirebaseAuth.getInstance(); // 构建PhoneAuthOptions PhoneAuthOptions phoneAuthOptions = PhoneAuthOptions.newBuilder(firebaseAuth) .setPhoneNumber("+8613xxxxxxxxx") .setTimeout(60L, TimeUnit.SECONDS) .setActivity(this) .setCallbacks(new PhoneAuthProvider.OnVerificationStateChangedCallbacks() { @Override public void onVerificationCompleted(@NonNull PhoneAuthCredential credential) { // 处理自动验证完成逻辑 } @Override public void onVerificationFailed(@NonNull FirebaseException e) { // 处理验证失败逻辑 } @Override public void onCodeSent(@NonNull String verificationId, @NonNull PhoneAuthProvider.ForceResendingToken token) { // 保存verificationId和token } }) .build();
2. 启动电话号码验证流程
调用PhoneAuthProvider.verifyPhoneNumber()方法传入构建好的PhoneAuthOptions实例,替代原来的弃用方法:
Kotlin:
PhoneAuthProvider.verifyPhoneNumber(phoneAuthOptions)
Java:
PhoneAuthProvider.verifyPhoneNumber(phoneAuthOptions);
额外说明
新的Builder模式相比旧方法更灵活,支持更多扩展配置,比如需要重发验证码时,可在PhoneAuthOptions中通过setForceResendingToken()传入之前保存的ForceResendingToken。
内容的提问来源于stack exchange,提问作者Maxwell
相关产品推荐
相关产品推荐

