首页 > 解决方案 > 断言失败:'电子邮件!= null'?

问题描述

有谁知道为什么我的结果为空?当我想注册时,调试控制台显示:断言失败:第 183 行 pos 12: 'email != null': is not true。它显示为空。这是我按下注册按钮时的注册代码,另一个代码是我的身份验证类。如果有人知道请发表评论。

 Future <void> signUp() async {

     if(_formKey.currentState.validate()){
       setState(() {

         isLoading = true;
       });

       await authService.signUpWithEmailAndPassword(_email,
           _password).then((result)  {
         if(result != null){

           Map<String,String> userDataMap = {
             "Username" : _Username,
             "Email" : _email,
             "Nation" : _Nation,
           };

           databaseService.addUserInfo(userDataMap);

           HelperFunction.saveUserLoggedInSharedPreference(true);
           HelperFunction.saveUserNameSharedPreference(_Username);
           HelperFunction.saveUserEmailSharedPreference(_email);
           HelperFunction.saveUserNationSharedPreference(_Nation);

           Navigator.pushReplacement(context, MaterialPageRoute(
               builder: (context) => LoadingBarForUserCreation()
           ));
         }else{
           print(result);
         }
       }).catchError((e){
         _showSettingPanelForEmail();
       });
     }

身份验证服务

class AuthService{

  final FirebaseAuth _auth = FirebaseAuth.instance;

  Userf _userFromFirebaseUser(User user){

    return user != null ? Userf(uid: user.uid) : null;
  }

  Stream<Userf> get user {
    return _auth.onAuthStateChanged
        .map(_userFromFirebaseUser);
  }


  Future signInWithEmailAndPassword(String email, String password) async {
    try {
      User user = (await _auth.signInWithEmailAndPassword(
          email: email, password: password)).user;
      return _userFromFirebaseUser(user);
    } catch (e) {
      print(e.toString());
      return null;
    }
  }

  Future signUpWithEmailAndPassword(String email, String password) async {
    try {
      User user = (await _auth.createUserWithEmailAndPassword(
          email: email, password: password)).user;
      return _userFromFirebaseUser(user);
    } catch (e) {
      print(e.toString());
      return null;
    }
  }





  Future signOut() async {
    try {
      return await _auth.signOut();
    } catch (e) {
      print(e.toString());
      return null;
    }
  }



}

标签: databaseflutternull

解决方案


推荐阅读