我正在使用Firebase的sendPasswordResetEmail()函数向我的应用程序添加“忘记密码”功能。
我有一个AlertDialog,用户可以在其中输入他们的电子邮件,按一个按钮,然后电子邮件将发送到用户的电子邮件,让他/她重置密码。我添加了一个Text(message),默认情况下message是一个空字符串。这个想法是,如果sendPasswordResetEmail()不起作用,我们将设置message = error.message,这是在按钮的onPressed中完成的:
FlatButton(
child: Text('Reset Password'),
onPressed: () async {
setState(() {
loading = false;
});
try {
await _authInstance.sendPasswordResetEmail(
email: forgotEmail);
Navigator.of(context).pop();
} catch (e) {
print(e.message);
setState(() {
errorMessage = e.message;
});
}
},
),
这暂时不起作用,errorMessage不会得到重新定义,但是在热重载时会起作用。我发现它很奇怪,因为它位于setState()中。
有人知道如何解决此问题吗?