【发布时间】:2021-09-26 03:37:46
【问题描述】:
我正在尝试检查用户是否已登录。即使用户已登录,它也会将值返回为 false,尽管它应该返回 true。
isUserLoggedIn() {
bool? loggedIn = false;
FirebaseAuth.instance.authStateChanges().listen((User? user) {
if (user != null) {
print("True is getting executed.");
loggedIn = true;
}
});
print("Logged In Value: $loggedIn");
return loggedIn;
}
下面显示的是上面代码的输出:
I/flutter (18584): Logged In Value: false
I/flutter (18584): false
I/flutter (18584): True is getting executed.
我不确定为什么声明 True is getting executed. 最终会被打印出来。
我怎样才能解决这个问题?
【问题讨论】:
-
日志语句的顺序应该已经告诉你你做错了什么。内部块是异步运行的,只有在方法返回之后才会执行。
-
感谢@luk2302 的快速回复。我不知道如何解决它。如果你能给我提供一个非常棒的解决方案
-
我确实尝试过申请
async和await但它给了我一个警告。