getter'email'被调用为null。即使检查为空

时间:2020-06-11 06:08:44

标签: android ios flutter dart

我正在从AppBrewery创建一个名为FlashChat的聊天扑扑应用。 在欢迎屏幕中,如果用户已经登录,我希望初始路由直接转到聊天路由。

_auth.currentUser() == null ? '/' : '/chat'

我使用了这个三元运算符,因此只有在有currentUser的情况下,它才会进入聊天屏幕。但是,我认为它仍在尝试调用转到/ chat屏幕的路由,这就是在null上调用电子邮件的原因,因为此代码在我的“ / chat”路由中:

final messageBubble = MessageBubble(
          messageText, messageSender, messageSender == loggedInUser.email);

为什么三元运算符应阻止/ chat路由并以null访问.email?

1 个答案:

答案 0 :(得分:0)

auth.currentUser()将始终返回Future<AuthResult>,您需要使用async/await来检查AuthResult是否为空。

void getUser() async {
  Future<AuthResult> user = await FirebaseAuth.instance.currentUser();
   user == null ? '/' : '/chat';
}