signInWithGoogle function
Implementation
Future<Map> signInWithGoogle() async {
final GoogleSignInAccount? googleSignInAccount = await googleSignIn.signIn();
final GoogleSignInAuthentication googleSignInAuthentication =
await googleSignInAccount!.authentication;
final AuthCredential credential = GoogleAuthProvider.credential(
accessToken: googleSignInAuthentication.accessToken,
idToken: googleSignInAuthentication.idToken,
);
final UserCredential authResult =
await _auth.signInWithCredential(credential);
final User? user = authResult.user;
assert(!user!.isAnonymous);
assert(await user!.getIdToken() != null);
final User? currentUser = _auth.currentUser;
assert(user!.uid == currentUser!.uid);
var userDetails = {
"id": user!.uid,
"name": user.displayName,
"email": user.email,
"image": user.photoURL,
"lastSignin": user.metadata.lastSignInTime,
"createdate": user.metadata.creationTime,
"token": await user.getIdToken().then((value) => value)
};
return userDetails;
}