![](/img/trans.png)
[英]I'm using phone number to to sign in user in firebase android ,how can i keep user signed in until user sign out?
[英]How to keep user signed in Flutter Firebase app?
我正在創建一個使用 Firebase 作為后端的聊天應用程序。 每當我重新啟動應用程序時,它都會進入歡迎屏幕,用戶必須每次登錄/注冊。 如果您登錄,然后在不注銷的情況下關閉應用程序,它仍會返回登錄屏幕。 我在 main 方法中添加了一個方法來檢查:
void getCurrentUser() async {
FirebaseAuth.instance.onAuthStateChanged.listen((firebaseUser) {
print(firebaseUser);
_user = firebaseUser;
});
}
因此,如果 _user 是 null,則 go 到歡迎頁面,否則 go 直接進入應用程序的聊天屏幕:
Widget build(BuildContext context) {
getCurrentUser();
return MaterialApp(
initialRoute: _user == null ? '/' : '/chat',
routes: {
'/': (context) => WelcomeScreen(),
'/login': (context) => LoginScreen(),
'/registration': (context) => RegistrationScreen(),
'/chat': (context) => ChatScreen(),
},
);
}
為什么它不起作用? 我已經用谷歌搜索了這個問題一段時間,之前我使用的是 auth.currentUser(),這可能是問題所在,但現在我使用了一個監聽器,但它仍然不起作用。
var user await FirebaseAuth.instance.currentUser();
if (user != null) {
Navigator.of(context).pushNamed("routeName");
}
將上面的代碼包裝在一個異步 function 中,它接受 BuildContext 並在 return 語句之前調用 build 方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.