首页 > 解决方案 > 更改页面 Flutter 时丢失 GoogleSignInAccount

问题描述

我希望当我打开此页面时,显示 Google 用户信息,如果未登录,则显示登录按钮。当我这样做时它正在工作。但是每次我更改页面(我正在使用bottomNavigationBar btw)时,都会出现按钮而不是信息。

这是鳕鱼:

class _AccountScreenState extends State<AccountScreen> {


bool _isLoggedIn = AuthGoogle().isSigningIn;
  GoogleSignInAccount _userObj;
  GoogleSignIn _googleSignIn = GoogleSignIn();

  @override
  Widget build(BuildContext context) {
    return StreamBuilder(
      stream: FirebaseAuth.instance.authStateChanges(),
      builder: (context, snapshot) {
        return Column(
          children: [
            SizedBox(
              height: 50,
            ),
            (_userObj != null)
                ? Center(
                    child: Column(
                      children: [
                        CircleAvatar(
                            radius: 50,
                            backgroundImage: NetworkImage(_userObj.photoUrl)),
                        Text("Bem vindo de volta " + _userObj.displayName),
                        Text(_userObj.email),
                      ],
                    ),
                  )
                : Center(
                    child: ElevatedButton(
                      child: Text("Login with Google"),
                      onPressed: () {
                        _googleSignIn.signIn().then((userData) {
                          setState(() {
                            _isLoggedIn = true;
                            AuthGoogle().isSigningIn = true;
                            _userObj = userData;
                          });
                        }).catchError((e) {
                          print(e);
                        });
                      },
                    ),
                  ),
            TextButton(
                onPressed: () {
                  _googleSignIn.signOut().then((value) {
                    setState(() {
                      _isLoggedIn = false;
                      AuthGoogle().isSigningIn = false;
                    });
                  }).catchError((e) {});
                },
                child: Text("Logout"))
          ],
        );
      },
    );}
}

标签: firebaseflutterfirebase-authentication

解决方案


推荐阅读