我在使用 Flutter 开发的移动应用中添加了 Firebase Auth 服务的登录功能。但是,当用户登录后打开应用时,有时会被引导到登录页面而不是主页,因为该currentUser
字段可能返回 null。
我在网上搜索了一下,发现authStateChanges
可以用。这让我有点担心,因为我觉得它会占用太多网络流量。
使用该reload
方法能解决我遇到的问题吗?
这是我的代码,目前运行不正确:
final currentUser = FirebaseAuth.instance.currentUser; // sometimes return null
if (currentUser == null) {
_navigateToLogin();
} else {
_navigateToHome();
}
解决方案的建议代码:
FirebaseAuth.instance.authStateChanges().listen((User? user) {
if (user == null) {
_navigateToLogin();
} else {
_navigateToHome();
}
});
我想要做的事情:
var user = FirebaseAuth.instance.currentUser;
await user?.reload();
user = FirebaseAuth.instance.currentUser;
if (user == null) {
await _navigateToLogin();
} else {
await _navigateToHome();
}
我尝试了一下我想要的代码,没有发现任何错误,但我担心是否会再次遇到类似的问题。所以我想问一下。