'verificationCompleted != null': is not true in Flutter Firebase Auth

Viewed 468

I am using FirebaseAuth for Sent OTP and validate users number.But facing 'verificationCompleted != null' this Error

This is My Code

 Future<void> registerUser(BuildContext context) async {
      await FirebaseAuth.instance.verifyPhoneNumber(
      phoneNumber: mobileNum,
      timeout: const Duration(seconds: 15),
      verificationCompleted: (AuthCredential authCredential) {
        setState(() {
          authStatus = "Your account is successfully verified";
        });
      },
      verificationFailed: (FirebaseAuthException e) {
        print(e);
      },
      codeSent: (String verId, [int forceCodeResent]) {
        var verificationId = verId;
        setState(() {
          authStatus = "OTP has been successfully send";
        });
      },
      codeAutoRetrievalTimeout: (String verId) {
        var verificationId = verId;
        setState(() {
          authStatus = "TIMEOUT";
        });
      },
    );
 }

This Error I am Facing

[VERBOSE-2:ui_dart_state.cc(166)] Unhandled Exception: 'package:firebase_auth/src/firebase_auth.dart': Failed assertion: line 639 pos 12: 'verificationCompleted != null': is not true.
#0      _AssertionError._doThrowNew (dart:core-patch/errors_patch.dart:46:39)
#1      _AssertionError._throwNew (dart:core-patch/errors_patch.dart:36:5)
#2      FirebaseAuth.verifyPhoneNumber (package:firebase_auth/src/firebase_auth.dart:639:12)
1 Answers

not sure of your problem but it says : ERROR_SESSION_EXPIRED, The sms code has expired and in _auth.verifyPhoneNumber() your Timeout duration is quite low. try 60 Seconds.

await _auth.verifyPhoneNumber(
        phoneNumber: '+91${_phoneNumberController.text}',
        timeout: Duration(seconds: 60),
        verificationCompleted: verificationCompleted,
        verificationFailed: verificationFailed,
        codeSent: codeSent,
        codeAutoRetrievalTimeout: codeAutoRetrievalTimeout);

also take look at the docs.

Related