获取器'email'在 null 上调用。即使在检查空之后



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

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

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

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

当三元运算符应该阻止它时,为什么它会转到/chat 路由并在空值上访问 .email?

auth.currentUser()总是会返回一个Future<AuthResult>,你需要用async/await来检查AuthResult是否为空。

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

相关内容

最新更新