В настоящее время я создаю приложение с использованием Flutter.
Цель состоит в том, чтобы проверить, подтверждена ли электронная почта учетной записи, прежде чем входить в нее.
Сейчас пользователь входит в свою учетную запись с помощью Auth.signInWithEmailAndPassword.
На этом этапе Auth.isEmailVerified возвращает false
После этого отправляется электронное письмо с подтверждением, затем пользователь нажимает ссылку, чтобы подтвердить свою учетную запись, и появляется всплывающее окно, в котором говорится, что его учетная запись теперь проверена.
Пользователь пытается снова войти в систему, но Auth.isEmailVerified по-прежнему возвращает false.
Любые идеи?
Это файл класса auth.dart, который я использую.
https://github.com/AndriousSolutions/auth/blob/master/lib/auth.dart
А это мой код.
child: MaterialButton(
minWidth: 200.0,
height: 42.0,
onPressed: () async {
if (_formKey.currentState.validate()) {
Auth.signInWithEmailAndPassword(
email: emailAddressController.text,
password: passwordController.text)
.then((onSuccess) {
Auth.reload();
if ((onSuccess)) {
if (Auth.isEmailVerified) {
db.createUser(
emailAddress: Auth.email,
firstName: Tools.getFirstName(Auth.displayName),
googleAccount: false);
Navigator.of(context).pushReplacementNamed(HomePage.tag);
} else {
emailVerificationDialog(context);
Auth.sendEmailVerification();
}
}
}).catchError((e) {
print(" LSAHJDSAKHDSA " + e);
});
}
},
color: ThemeSettings.RaisedButtonColor,
child: Text('Log In', style: TextStyle(color: Colors.white)),
),
Огромное спасибо!!

Глядя на библиотеку, которую вы используете, нужно дождаться вызова Auth.reload. Должен быть
static Future<bool> reload() async {
await _user?.reload();
return _setUserFromFireBase(_user);
}
Поскольку он не ожидает перезагрузки, ваш код просто продолжает работать и проверяет isEmailVerified, прежде чем у него будет возможность завершить перезагрузку.
Этот проблема сообщает об этом, и я поделился этой информацией.