sendOTPPhoneNumber method

Future sendOTPPhoneNumber({
  1. required String phoneNumber,
  2. Duration? timeout,
  3. required dynamic onCodeSend(
    1. String verificationId
    ),
  4. required dynamic onError(
    1. String verificationId
    ),
  5. dynamic onAutoVerified(
    1. PhoneAuthCredential phoneAuthCredential
    )?,
})

login With Phone number

Implementation

Future sendOTPPhoneNumber({
  required String phoneNumber,
  Duration? timeout,
  required Function(String verificationId) onCodeSend,
  required Function(String error) onError,
  Function(PhoneAuthCredential phoneAuthCredential)? onAutoVerified,
}) async {
  try {
    await _auth.verifyPhoneNumber(
      phoneNumber: phoneNumber,
      timeout: timeout ?? Duration(seconds: 120),
      verificationCompleted: (phoneAuthCredential) async {
        if (onAutoVerified != null) {
          onAutoVerified(phoneAuthCredential);
        } else {
          await _auth.signInWithCredential(phoneAuthCredential);
        }
      },
      verificationFailed: (error) {
        onError(error.message ?? "smutting wring");
      },
      codeSent: (verificationId, forceResendingToken) {
        onCodeSend(verificationId);
      },
      codeAutoRetrievalTimeout: (verificationId) {},
    );
  } on FirebaseAuthException catch (e) {
    debugPrint("Authentication Error: $e");
  }
}