【发布时间】:2020-08-05 04:58:59
【问题描述】:
我正在尝试在 Flutter 中实现 Firebase 授权。我能够成功登录并导航到新屏幕,但是在尝试注销时,我看到 logcat 中的活动表明:
但是,我希望主页会根据此注销进行更新。也就是说,我有一个应该在登录和注销之间切换的图标,但应用程序似乎保持登录状态。这些是我期望出现在同一屏幕上的布局更改:
用户单击注销按钮,但我希望小部件更新为以下内容:
我要求注销的功能如下,并出现在我的主页小部件中
class _MainActivityState extends State<MainActivity> {
var userStatus = FirebaseAuth.instance.currentUser();
Future logout()
async{
final FirebaseAuth auth = FirebaseAuth.instance;
await auth.signOut();
Navigator.push(context,MaterialPageRoute(builder: (context) => MainActivity())
);
return userStatus = null;
}
在我的代码中,我使用if 语句(如果我使用字符串手动覆盖登录/注销,则该语句有效)基于 userStatus 在小部件之间切换,如下所示:
if(userStatus != null)
Container(
//Some code here for the widget showing login button.
)
或者如果退出:
if(userStatus == null)
Container(
//Some code here for the widget showing login button
)
我有一个单独的登录页面,我最初在其中执行了登录,但身份验证状态似乎对整个应用程序都保持不变。
我如何覆盖 Auth.signout() 似乎没有更新用户状态。
【问题讨论】:
-
考虑使用任何状态管理技术,比如 MobX,这样你就可以让你的 UI 对退出等变化做出反应
标签: flutter dart firebase-authentication