在构建Home(脏,状态:HomeState#0a71e)时引发了NoSuchMethodError:在null上调用了getter'displayName'

时间:2019-07-28 22:15:41

标签: flutter

我正在尝试从FirebaseAuth获得UserEmail和UserName,并且我正确地获得了100%的结果,但是它抛出错误->“ getter'displayName'被调用为null。” “接收方:null”“尝试调用:displayName”

class HomeState extends State<Home> {
    String accountStatus = '******';
    FirebaseUser mCurrentUser;
    FirebaseAuth _auth;
    @override
   void initState() {
      super.initState();
      _auth = FirebaseAuth.instance;
      _getCurrentUser();
    }
   _getCurrentUser () async {
      mCurrentUser = await _auth.currentUser();
      print('Hello ' + mCurrentUser.displayName.toString());
      print('Email ' + mCurrentUser.email.toString());
      setState(() {
        mCurrentUser != null ? accountStatus = 'Signed In' : 'Not Signed In';
    });
}

I / flutter(11647):══╡小组件库引起的异常══╡ ════════════════════════════ I / flutter(11647):在构建Home(dirty,state:HomeState#0a71e)时引发了以下NoSuchMethodError: I / flutter(11647):在null上调用了getter'displayName'。 I / flutter(11647):接收者:null I / flutter(11647):尝试调用:displayName I /颤振(11647): I / flutter(11647):引发异常时,这是堆栈: I /颤振(11647):#0 Object.noSuchMethod(dart:core-patch / object_patch.dart:50:5) I / flutter(11647):#1 HomeState.build(程序包:shopping_zone / UI / Home.dart:58:61) I / flutter(11647):#2 StatefulElement.build(package:flutter / src / widgets / framework.dart:4012:27) 。 。 。 。 I / flutter(11647):你好Lina I / flutter(11647):电子邮件lina19@gmail.com

1 个答案:

答案 0 :(得分:0)

如果未连接任何用户,则mCurrentUser将是null,并且在打印mCurrentUser.displayName.toString()时会出现该错误。

您应该在打印之前测试用户是否为空:

if (mCurrentUser != null)
  print('Hello ' + mCurrentUser.displayName.toString());
  print('Email ' + mCurrentUser.email.toString());
}