Невозможно отправить подтверждение по электронной почте дважды с Firebase в Flutter - PullRequest
0 голосов
/ 24 февраля 2020

Я создаю приложение Flutter, которое использует Firebase для аутентификации.

После регистрации пользователю отправляется письмо с подтверждением. Затем пользователю показывают экран, чтобы сообщить им, что ему было отправлено электронное письмо. Я хотел бы включить кнопку на этом экране, чтобы они могли отправить второе электронное письмо, если они каким-то образом пропустили первое.

Я обнаружил, что во второй раз, когда я пытаюсь отправить электронное письмо, ответа нет и оставляет асинхронную функцию зависшей. Как только я делаю горячую перезагрузку, кажется, больше нет проблем с отправкой подтверждающего электронного письма.

Я думаю, может быть, это как-то связано с тем, что Firebase пытается предотвратить несколько копий одного и того же запроса? Было интересно, если кто-нибудь знает наверняка или испытал это.

// code to create user and send email
  final authResult = await _instance.createUserWithEmailAndPassword(
      email: email, password: password);
  if (authResult != null) {
    await authResult.user.sendEmailVerification();
    await _instance.signOut();
    return Response(
        status: Status.success,
        message:
            'Successfully created account. Awaiting email verification.',
        body: authResult.user);
  }

// button press function on the email verification screen
                  onPressed: () async {
                    print('attempting to send verification email');
                    try {
                      await user.sendEmailVerification();
                      print("sent");
                      CustomAlertDialog.messageAlertDialog(
                        context,
                        'Verification email sent',
                        '',
                        "Continue",
                      );
                    } catch (error) {
                      print("error sending verification error: $error");
                      CustomAlertDialog.messageAlertDialog(
                        context,
                        'Verification email failed',
                        error,
                        "Continue",
                      );
                    }
                  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...