Flutter, как прослушивать подтверждение электронной почты, прежде чем пользователь сможет войти в систему - firebase - PullRequest
0 голосов
/ 21 июня 2020

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

Мой код авторизации

  Future<String> signIn(String email, String password) async {
    AuthResult result = await _firebaseAuth.signInWithEmailAndPassword(
        email: email, password: password);
    FirebaseUser user = result.user;
    if (user.isEmailVerified) {
      return user.uid;
    } else {
      return null;
    }
  }

  Future<String> signUp(String email, String password) async {
    AuthResult result = await _firebaseAuth.createUserWithEmailAndPassword(
        email: email, password: password);
    FirebaseUser user = result.user;
    try {
      await user.sendEmailVerification();
      return user.uid;
    } catch (e) {
      print("An error occurred while trying to send email verification");
      print(e.message);
    }
  }

метод входа

try {
        if (_isLoginForm) {
          userId = await widget.auth.signIn(_email, _password);
          print('Signed in: $userId');
        } else {
          userId = await widget.auth.signUp(_email, _password);
          //widget.auth.sendEmailVerification();
          _showVerifyEmailSentDialog();
          print('Signed up user: $userId');
        }
        setState(() {
          _isLoading = false;
        });

        if (userId.length > 0 && userId != null && _isLoginForm) {
          widget.loginCallback();
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...