我正在从AppBrewery创建一个名为FlashChat的聊天扑扑应用。 在欢迎屏幕中,如果用户已经登录,我希望初始路由直接转到聊天路由。
_auth.currentUser() == null ? '/' : '/chat'
我使用了这个三元运算符,因此只有在有currentUser的情况下,它才会进入聊天屏幕。但是,我认为它仍在尝试调用转到/ chat屏幕的路由,这就是在null上调用电子邮件的原因,因为此代码在我的“ / chat”路由中:
final messageBubble = MessageBubble(
messageText, messageSender, messageSender == loggedInUser.email);
为什么三元运算符应阻止/ chat路由并以null访问.email?
答案 0 :(得分:0)
auth.currentUser()
将始终返回Future<AuthResult>
,您需要使用async/await
来检查AuthResult
是否为空。
void getUser() async {
Future<AuthResult> user = await FirebaseAuth.instance.currentUser();
user == null ? '/' : '/chat';
}