首页 > 解决方案 > 如何使用firebase电话身份验证添加OTP过期时间

问题描述

 await FirebaseAuth.instance.verifyPhoneNumber(
        phoneNumber: mobile,
        timeout: const Duration(seconds: 5),
        verificationCompleted: verificationCompleted,
        verificationFailed: verificationFailed,
        codeSent: codeSent,
    );

我正在使用此代码段,但其中提到的超时是针对 autoOtpRetrievelTimeOut 但我正在寻找如何添加 otp 到期时间,例如 60 秒后我希望用户再次单击重新发送 OTP

标签: firebaseflutter

解决方案


 bool isTimeExpired = false;    

   Future.delayed(const Duration(seconds: 60), () {
      setState(() { //Replace setState with your state management
        // Enable Resend Option
        isTimeExpired = true;
      });
    
    });

await FirebaseAuth.instance.verifyPhoneNumber(
        phoneNumber: mobile,
        timeout: const Duration(seconds: 5),
        verificationCompleted: verificationCompleted,
        verificationFailed: verificationFailed,
        codeSent: codeSent,
   );

verificationCompleted(params)async{
   if(isTimeExpired){
     await FirebaseAuth.instance.signOut();
     //your code
   }
}

推荐阅读