颤抖如何在用户登录之前如何收听电子邮件验证-Firebase

时间:2020-06-21 13:49:28

标签: flutter firebase-authentication email-verification

我的应用程序允许用户注册并发送电子邮件进行验证。但是我有一个问题,无论电子邮件是否经过验证,用户都可以使用新帐户登录。考虑到我是新手,我已经看过并且找不到解决方案

我的验证码

  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();
        }

0 个答案:

没有答案
相关问题