Flutter Firebase验证密码重置

a6b3iqyw  于 2023-06-24  发布在  Flutter
关注(0)|答案(2)|浏览(142)

我正在尝试在我的应用中使用Firebase Auth sendPasswordResetEmail()调用。
在我的授权文件中,我声明如下:

Future<void> sendPasswordResetEmail(String email) async {
    return _firebaseAuth.sendPasswordResetEmail(email: email);
  }

我将Auth传递给我的表单小部件,该小部件接受这个密码,并在我提交后具有以下onPressed函数。

onPressed: () async {
    var response = await checkEmail();
    setState(() {
        this._emailValidator = response;
    });
    if (_formKey.currentState.validate()) {
        _formKey.currentState.save();
        try {
            await widget.auth
                .sendPasswordResetEmail(_email);
        } catch (e) {
            print(e);
        }
    }

},

在使用适当的电子邮件运行它后,我得到以下控制台消息:
”试着打电话:sendPasswordResetEmail(“test@email.com“)”注意:我使用的是真实的的电子邮件。
我已经设置了Firebase电子邮件模板系统,但没有收到任何电子邮件。有谁知道我如何进一步解决这个问题,或者为什么我的电子邮件不工作?
谢谢!

zbdgwd5y

zbdgwd5y1#

我想明白了我没有正确地将auth从我的auth文件传递到新文件。因此,该方法在null上被调用,导致NoSuchMethodError。

gcxthw6b

gcxthw6b2#

将您的电子邮件发送到sendPasswordResetEmail

FirebaseAuth.instance.sendPasswordResetEmail(email: "test@.com").then((_) {
  toast("link has been sent to your email for password reset");
}).catchError((error) {
  showDialog(
      context: context,
      builder: (context) => ErrorLog(text: error.message.toString()),
);

相关问题