sendPasswordResetEmail method

Future<void> sendPasswordResetEmail()

Implementation

Future<void> sendPasswordResetEmail() async {
  if (FirebaseAuth.instance.currentUser?.email == null) {
    debugPrint('Email not found');
    CustomFlashWidget.showFlashMessage(
      type: FlashType.error,
      title: "Error",
      message:
          "Error occurred while trying to send email, please contact support",
    );
    return;
  }

  try {
    await FirebaseAuth.instance.sendPasswordResetEmail(
        email: FirebaseAuth.instance.currentUser!.email!);
    CustomFlashWidget.showFlashMessage(
      type: FlashType.success,
      title: "Email sent",
      message: "Reset password email was sent to your account",
    );
  } catch (e) {
    if (e is FirebaseAuthException && e.code == 'auth/too-many-requests') {
      debugPrint('Error sending password reset email: Too many attempts');
      CustomFlashWidget.showFlashMessage(
        type: FlashType.error,
        title: "Error",
        message: "Too many attempts. Please try again later",
      );
    } else {
      debugPrint('Error sending password reset email: $e');
      CustomFlashWidget.showFlashMessage(
        type: FlashType.error,
        title: "Error",
        message:
            "Error occurred while trying to send email, please contact support",
      );
    }
  }
}