【发布时间】:2021-08-29 08:20:59
【问题描述】:
我正在调用与 main.dart 的主要方法位于不同文件中的类方法。在这里,我试图获取用户的会话状态。我不确定我做错了什么,从main方法调用返回值总是返回false,但如果在实际方法中打印出来返回true。
这里的预期结果为真,因为用户当前在系统中并已登录。
这是我的主要方法-
Future main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
await Authenticate().getSessionStatus().then((status) => {
print(status)
});
}
这是我的类方法-
class Authenticate {
Future<bool> getSessionStatus() async {
bool _isSessionActive = false;
await FirebaseAuth.instance.authStateChanges().listen((User? user) {
if (user == null) {
//print('User is currently signed out!');
_isSessionActive = false;
} else {
//print('User is signed in!');
_isSessionActive = true;
}
});
return _isSessionActive;
}
}
Authenticate 类方法中的打印语句,如果打开返回 true,这是预期值,但从 main 方法调用 getSessionStatus 方法然后打印状态变量的值总是返回 false。我相信它与处理它的顺序有关,但我根本无法修复它。
【问题讨论】: