Untitled
unknown
plain_text
2 months ago
2.6 kB
8
Indexable
Future<void> verifyPhoneNumber({
required String phoneNumber,
required Function(PhoneAuthCredential) verificationCompleted,
required Function(FirebaseAuthException) verificationFailed,
required Function(String, int?) codeSent,
required Function(String) codeAutoRetrievalTimeout,
}) async {
await _auth.verifyPhoneNumber(
phoneNumber: phoneNumber,
verificationCompleted: verificationCompleted,
verificationFailed: verificationFailed,
codeSent: codeSent,
codeAutoRetrievalTimeout: codeAutoRetrievalTimeout,
);
}
Future<UserCredential?> signInWithPhoneCredential(String verificationId, String smsCode) async {
try {
AuthCredential credential = PhoneAuthProvider.credential(
verificationId: verificationId,
smsCode: smsCode,
);
return await _auth.signInWithCredential(credential);
} catch (e) {
rethrow;
}
}
Uiiiiiiii
Future<void> _verifyPhone() async {
String phone = _phoneController.text.trim();
if (phone.isEmpty || !phone.startsWith('+')) {
_showError('Enter phone with +CountryCode');
return;
}
setState(() => _isLoading = true);
await _authService.verifyPhoneNumber(
phoneNumber: phone,
verificationCompleted: (PhoneAuthCredential credential) async {
await FirebaseAuth.instance.signInWithCredential(credential);
if (mounted) {
Navigator.pushReplacement(
context,
MaterialPageRoute(builder: (context) => const HomeScreen()),
);
}
},
verificationFailed: (FirebaseAuthException e) {
setState(() => _isLoading = false);
_showError(e.message ?? 'Verification failed');
},
codeSent: (String verificationId, int? resendToken) {
setState(() => _isLoading = false);
CommonUI.showOTPDialog(
context: context,
onVerify: (otp) async {
setState(() => _isLoading = true);
try {
await _authService.signInWithPhoneCredential(verificationId, otp);
if (mounted) {
Navigator.pushReplacement(
context,
MaterialPageRoute(builder: (context) => const HomeScreen()),
);
}
} catch (e) {
_showError('Invalid OTP');
} finally {
if (mounted) setState(() => _isLoading = false);
}
},
);
},
codeAutoRetrievalTimeout: (id) {},
);
}
Editor is loading...
Leave a Comment