#android #ios #firebase #flutter #firebase-authentication
#Android #iOS #firebase #flutter #firebase-аутентификация
Вопрос:
Я использую телефонную аутентификацию на платформе Firebase. На самом деле я решил эту проблему с помощью приведенного ниже кода, но Firebase выдала мне еще одну ошибку, похожую позже.
Я пытаюсь выбрать 2 варианта; один из них использует catch (e), другой использует FirebaseAuthException catch (me), но я всегда получаю одну и ту же ошибку.
signin() async {
final AuthCredential credential = PhoneAuthProvider.credential(
verificationId: verificationId, smsCode: code);
try {
await FirebaseAuth.instance.signInWithCredential(credential);
print("successful");
} catch (e) {
print("not successful");
}
}
Произошло исключение.
Исключение PlatformException (Исключение PlatformException(invalid-verification-code, код подтверждения SMS, используемый для создания учетных данных авторизации телефона, недействителен. Пожалуйста, повторно отправьте SMS с кодом подтверждения и обязательно используйте код подтверждения, предоставленный пользователем., {code: invalid-verification-code, сообщение: код подтверждения SMS, используемый для создания учетных данных авторизации телефона, недействителен. Пожалуйста, повторно отправьте SMS с кодом подтверждения и обязательно используйте код подтверждения, предоставленный пользователем., nativeErrorMessage: код подтверждения SMS, используемый для создания учетных данных для авторизации по телефону, недействителен. Пожалуйста, повторно отправьте SMS с кодом подтверждения и обязательно используйте код подтверждения, предоставленный пользователем., nativeErrorCode: 17044, additionalData: {}}))
Ответ №1:
вы можете отфильтровать ошибку по FirebaseAuthException
коду;
signin() async {
final AuthCredential credential = PhoneAuthProvider.credential(
verificationId: verificationId,
smsCode: code,
);
try {
await FirebaseAuth.instance.signInWithCredential(credential);
print("successful");
} on FirebaseAuthException catch (e) {
if (e.code == 'invalid-verification-code') {
onWrongCode();
}
onOtherError(e);
} catch (e) {
onOtherError(e);
}
}