_verifyPhone() async
{
await FirebaseAuth.instance.setSettings(appVerificationDisabledForTesting: true); //Отключение рекапчи ios
await FirebaseAuth.instance.verifyPhoneNumber( //Вызываем проверку номера
phoneNumber: "+7${widget.phone}", // Переменная хранящаяя номер пользователя с указанием кода страны
verificationCompleted: (PhoneAuthCredential credential) async // Проверка на корректное срабатывание и завершение проверки(Выполняется последней).
{
await FirebaseAuth.instance.signInWithCredential(credential)
.then((value) async{
if(value.user != null) {
Navigator.push(context,MaterialPageRoute(builder: (context) => CardListView()));
}
});
},
verificationFailed: (FirebaseAuthException error) //Обработчик сбоев, при возникновения ошибки выводить соответствующее сообщение
{
print(error.message);
},
codeSent: (String verificationID, int? resendToken) //Отправляет код на указанный номер, и производит проверку правильности введеного кода
{
setState(() {
_verificationCode = verificationID;
});
},
codeAutoRetrievalTimeout: (String verificationID) //Отправляет новый код после тайм-аута. И проверяет правильность
{
setState(() {
_verificationCode = verificationID;
});
},
timeout: Duration(seconds: 60)); //Через указанное время отправится новый код. Прошлый перестанет быть действительным,
}
@override //Переинициализируем для проверки состояния
void initState()
{
super.initState();
_verifyPhone();
}