我有一个使用Flutter开发的简单游戏,可以登录用户,但是我不知道如何检查用户是否已登录以及如何获取用户的数据。
对于登录,我正在使用此方法,登录用户后,我可以获取他的数据:
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
Future getCurrentUser() async {
FirebaseUser _user = await FirebaseAuth.instance.currentUser();
print("User: ${_user.displayName ?? "None"}");
return _user;}
主镖
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: GSTheme.backgroundColor,
),
debugShowCheckedModeBanner: false,
home: MyAppClient().getCurrentUser() != null
? HomeViewController()
: LoginViewController(),
);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句