我正在尝试从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
答案 0 :(得分:0)
如果未连接任何用户,则mCurrentUser
将是null
,并且在打印mCurrentUser.displayName.toString()
时会出现该错误。
您应该在打印之前测试用户是否为空:
if (mCurrentUser != null)
print('Hello ' + mCurrentUser.displayName.toString());
print('Email ' + mCurrentUser.email.toString());
}