如何实施谷歌身份验证检查

问题描述 投票:0回答:1

我正在尝试实施简单的身份验证来决定是去一个页面还是另一个页面,但检查不顺利。有什么建议吗?

 _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

应用程序内部的路由似乎工作,但如果我关闭应用程序,每次我最终进入登录屏幕时再来

dart flutter firebase-authentication
1个回答
0
投票
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
                });
}
});
© www.soinside.com 2019 - 2024. All rights reserved.