如何检查用户是否已经使用Google登录和Firebase Auth登录以检索其数据? [英] How to check if user is already logged in using Google Sign in and Firebase Auth to retrieve their data?

查看:66
本文介绍了如何检查用户是否已经使用Google登录和Firebase Auth登录以检索其数据?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个使用Flutter开发的简单游戏,可以登录用户,但我不知道如何检查用户是否已登录以及如何获取用户数据.

I have a simple game made in Flutter and I can log in the user but I don't know how to check if the user is logged and how to get user's data if so.

对于登录,我正在使用此方法,登录用户后,我可以获取他的数据:

For log in I am using this method, after log in the user I can get his data:

Future<String> signInWithGoogle() async{

    print("INICIALIZANDO LOGIN COM GOOGLE...");

    googleSignInAccount = await googleSignIn.signIn();
    googleSignInAuthentication = await googleSignInAccount.authentication;

    final AuthCredential credential = GoogleAuthProvider.getCredential(
        accessToken: googleSignInAuthentication.accessToken,
        idToken: googleSignInAuthentication.idToken,

    );

    AuthResult authResult = await _auth.signInWithCredential(credential);

    user = authResult.user;

    assert(!user.isAnonymous);
    assert(await user.getIdToken() != null);

    currentUser = await _auth.currentUser();
    assert(user.uid == currentUser.uid);

    uid = user.uid;
    name = user.displayName;
    email = user.email;
    imageUrl = user.photoUrl;

    print(uid);
    print(email);
    print(name);
    print(imageUrl);

    return 'signInWithGoogle succeded: $user';

  }

并为此退出:

  void signOutGoogle() async{

    print("DESLOGOU!");
  await googleSignIn.signOut();

  }

推荐答案

MyAppClient.dart

MyAppClient.dart

Future getCurrentUser() async {
FirebaseUser _user = await FirebaseAuth.instance.currentUser();
print("User: ${_user.displayName ?? "None"}");
return _user;}

Main.dart

Main.dart

return MaterialApp(
  title: 'Flutter Demo',
  theme: ThemeData(
    primarySwatch: GSTheme.backgroundColor,
  ),
  debugShowCheckedModeBanner: false,
  home: MyAppClient().getCurrentUser() != null
      ? HomeViewController()
      : LoginViewController(),
);

这篇关于如何检查用户是否已经使用Google登录和Firebase Auth登录以检索其数据?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆