sendOtp method

Future<void> sendOtp({
  1. required String phoneNumber,
  2. required Function onCodeSent,
  3. required Function onSuccess,
  4. required Function onError,
})

Implementation

Future<void> sendOtp({required String phoneNumber, required Function onCodeSent, required Function onSuccess, required Function onError}) async{
  mobileNumber = phoneNumber;
  await auth.verifyPhoneNumber(
    phoneNumber: mobileNumber,
    forceResendingToken: resendToken,
    timeout: Duration(seconds: 60),
    verificationCompleted: (PhoneAuthCredential credential) async {
      handleSignIn(credential, onSuccess, (){});
    },
    verificationFailed: (FirebaseAuthException e) {
      if (e.code == 'invalid-phone-number') {
        AlertX.instance.showAlert(
            title: "Invalid phone number",
            msg: "The provided phone number is not valid.",
            negativeButtonText: null,
            positiveButtonText: "Done",
            negativeButtonPressed: (){},
            positiveButtonPressed: (){
              Navigation.instance.goBack();
            }
        );
      }else{
        AlertX.instance.showAlert(
            title: "Error",
            msg: e.message ?? "",
            negativeButtonText: null,
            positiveButtonText: "Done",
            negativeButtonPressed: (){},
            positiveButtonPressed: (){
              Navigation.instance.goBack();
            }
        );
      }
      onError();
    },
    codeSent: (String id, [int? code]){
      verificationId = id;
      resendToken = code ?? 0;
      onCodeSent();
    },
    codeAutoRetrievalTimeout: (String verificationId) {},
  );
}