目前,我需要检查用户是否已登录,然后采取相应的措施(打开主页或登录屏幕)。我仅使用电子邮件身份验证。
如何在Flutter中检查用户Firebase身份验证状态?
这里已经问过这个问题,但是我无法通过这种方式检查auth状态:
final auth = FirebaseAuth.instance; class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return new MaterialApp( title: 'MyApp', home: (_checkLogin() == true ? new PostAuthScaffold() : new PreAuthScaffold()) ); } } bool _checkLogin() { return !(auth.currentUser == null); }
您还可以initState像下面这样检查您的身份验证状态:
initState
class CheckAuth extends StatefulWidget { @override _CheckAuthState createState() => new _CheckAuthState(); } class _CheckAuthState extends State<CheckAuth> { bool isLoggedIn; @override void initState() { isLoggedIn = false; FirebaseAuth.instance.currentUser().then((user) => user != null ? setState(() { isLoggedIn = true; }) : null); super.initState(); // new Future.delayed(const Duration(seconds: 2)); } @override Widget build(BuildContext context) { return isLoggedIn ? new Home() : new LoginScreen(); } }