我目前正在使用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)),
),
非常感谢你!
1 回答
需要等待正在等待使用
Auth.reload
呼叫的库 . 它应该是由于它没有等待重新加载,因此您的代码只是继续运行并且在它有机会完成重新加载之前检查
isEmailVerified
.这个issue正在报告我已经分享了这个信息 .