如何为用户签到?

问题描述

我遇到的问题是,我的方法似乎并没有真正检查用户是否验证了他的电子邮件。 当用户注册时,他会在他的电子邮件帐户中收到一封电子邮件,在我的应用程序中,他会进入一个每 5 秒重新加载一次的页面,并检查用户是否验证了他的邮件,如果他完成了验证,那么到目前为止,他会自动进入主页。但是当用户注册并且电子邮件发送到他的电子邮件帐户但他没有验证他的电子邮件并重新加载他自动进入主页的应用程序时,这是我的问题。如果用户验证了他的邮件但收到错误,我尝试检查登录方法是否存在。

这是我的登录方法

class AuthService {
  final FirebaseAuth _auth = FirebaseAuth.instance;

  String error;
  String result="";
  //create user obj based on FirebasedUser
  Model.User _userFromFirebaseUser(User user) {
    return user != null ? Model.User(uid: user.uid) : null;
  }



Future<String> signIN(String email,String password) async {
    try {
     // if(_auth.currentUser.emailVerified!=null) {
        ( await _auth.signInWithEmailAndPassword(
          email: email.trim(),password: password,)).user;
        return "success";

        // User user = result.user;
    // }

    } on FirebaseAuthException catch (e) {
      switch (e.code) {

错误

E/Flutter (26776): [ERROR:Flutter/lib/ui/ui_dart_state.cc(186)] Unhandled Exception: NoSuchMethodError: The getter 'emailVerified' was called on null.
E/Flutter (26776): Receiver: null
E/Flutter (26776): Tried calling: emailVerified
E/Flutter (26776): #0      Object.noSuchMethod (dart:core-patch/object_patch.dart:54:5)
E/Flutter (26776): #1      AuthService.signIN (package:projectandroidstudiodenya/services/auth.dart:44:44)
E/Flutter (26776): #2      _LoginScreenState._buildLoginBtn.<anonymous closure> (package:projectandroidstudiodenya/authenticate/signin.dart:170:48)
E/Flutter (26776): #3      _LoginScreenState._buildLoginBtn.<anonymous closure> (package:projectandroidstudiodenya/authenticate/signin.dart:168:24)
E/Flutter (26776): #4      _InkResponseState._handleTap (package:Flutter/src/material/ink_well.dart:994:20)
E/Flutter (26776): #5      GestureRecognizer.invokeCallback (package:Flutter/src/gestures/recognizer.dart:182:24)
E/Flutter (26776): #6      TapGestureRecognizer.handleTapUp (package:Flutter/src/gestures/tap.dart:607:11)
E/Flutter (26776): #7      BaseTapGestureRecognizer._checkUp (package:Flutter/src/gestures/tap.dart:296:5)
E/Flutter (26776): #8      BaseTapGestureRecognizer.acceptGesture (package:Flutter/src/gestures/tap.dart:267:7)
E/Flutter (26776): #9      GestureArenaManager.sweep (package:Flutter/src/gestures/arena.dart:157:27)
E/Flutter (26776): #10     GestureBinding.handleEvent (package:Flutter/src/gestures/binding.dart:443:20)
E/Flutter (26776): #11     GestureBinding.dispatchEvent (package:Flutter/src/gestures/binding.dart:419:22)
E/Flutter (26776): #12     RendererBinding.dispatchEvent (package:Flutter/src/rendering/binding.dart:288:11)
E/Flutter (26776): #13     GestureBinding._handlePointerEventImmediately (package:Flutter/src/gestures/binding.dart:374:7)
E/Flutter (26776): #14     GestureBinding.handlePointerEvent (package:Flutter/src/gestures/binding.dart:338:5)
E/Flutter (26776): #15     GestureBinding._flushPointerEventQueue (package:Flutter/src/gestures/binding.dart:296:7)
E/Flutter (26776): #16     GestureBinding._handlePointerDataPacket (package:Flutter/src/gestures/binding.dart:279:7)
E/Flutter (26776): #17     _rootRunUnary (dart:async/zone.dart:1370:13)
E/Flutter (26776): #18     _CustomZone.runUnary (dart:async/zone.dart:1265:19)
E/Flutter (26776): #19     _CustomZone.runUnaryguarded (dart:async/zone.dart:1170:7)
E/Flutter (26776): #20     _invoke1 (dart:ui/hooks.dart:186:10)
E/Flutter (26776): #21     Platformdispatcher._dispatchPointerDataPacket (dart:ui/platform_dispatcher.dart:282:7)
E/Flutter (26776): #22     _dispatchPointerDataPacket (dart:ui/hooks.dart:96:31)
E/Flutter (26776):

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)