我正在尝试实施简单的身份验证来决定是去一个页面还是另一个页面,但检查不顺利。有什么建议吗?
_isAuth = false
@override
void initState() {
if(FirebaseAuth.instance.currentUser() !=null){
_isAuth = true;
}
super.initState();
}
@override
Widget build(BuildContext context) {
return ScopedModel<CProductModel>(
model: _model,
child: MaterialApp(
routes: {
'/': (BuildContext context) =>
!_isAuth ? LoginPage() : Products(_model),
编辑:我也试过这个:
final GoogleSignIn googleSignIn = GoogleSignIn();
bool _isAuth = false;
@override
void initState() {
print(_isAuth);
if (googleSignIn.currentUser != null) {
setState(() {
print(_isAuth);
_isAuth = true;
});
}
super.initS
应用程序内部的路由似乎工作,但如果我关闭应用程序,每次我最终进入登录屏幕时再来
FirebaseAuth.instance.currentUser()
将给出一个Future对象,所以当你使用时
@override
void initState() {
if(FirebaseAuth.instance.currentUser() !=null){
_isAuth = true;
}
super.initState();
}
这里FirebaseAuth.instance.currentUser()给出了一个未来的对象,它将继续执行,执行不会停止。当Future对象返回一个对象时,您的执行已经完成。
而不是使用那种尝试使用这种方式
FirebaseAuth.instance.currentUser().then((_firebaseUser){
if(_firebaseUser!=null)
{
setState(() {
_isAuth=true
});
}
});