functionLoginSecondProvider function
Future<void>
functionLoginSecondProvider({
- required BuildContext context,
- required String phoneNumber,
The second provider is currently always the phone number login.
Implementation
Future<void> functionLoginSecondProvider(
{required BuildContext context, required String phoneNumber}) async {
var otpProvider = Provider.of<OTPProvider>(context, listen: false);
var userProvider = Provider.of<UserProvider>(context, listen: false);
var authProvider = Provider.of<AuthProvider>(context, listen: false);
otpProvider.phoneNumber = phoneNumber
.replaceAll(" ", "")
.replaceAll("00", "+")
.replaceAll("\"", "")
.replaceAll("\$", "")
.trim();
if (!kIsWeb) {
await authProvider.auth.verifyPhoneNumber(
phoneNumber: otpProvider.phoneNumber,
verificationCompleted: (phoneAuthCredential) async {
otpProvider.otpState = OTPState.OTP_SENT;
},
verificationFailed: (verificationFailed) async {
toastOtpError(context, verificationFailed.message.toString());
},
codeSent: (verificationId, resendingToken) async {
toastOtpSuccess(context);
otpProvider.verificationID = verificationId;
userProvider.userLocal.phoneNumber = otpProvider.phoneNumber!;
otpProvider.otpState = OTPState.OTP_SENT;
},
codeAutoRetrievalTimeout: (verificationId) async {
if (verificationId != otpProvider.verificationID) {
logger.d("CodeAutoRetrieval different verificationID");
}
logger.d("Code auto retrieval timeout");
},
);
} else {
/* Not mobile */
try {
otpProvider.confirmationResult = await FirebaseAuth.instance
.signInWithPhoneNumber(otpProvider.phoneNumber!);
otpProvider.verificationID =
otpProvider.confirmationResult!.verificationId;
toastOtpSuccess(context);
userProvider.userLocal.phoneNumber = otpProvider.phoneNumber!;
otpProvider.otpState = OTPState.OTP_SENT;
// UserCredential userCredential = await confirmationResult.confirm('123456');
} catch (error) {
toastOtpError(context, error.toString());
}
}
}