googleLogin method
Implementation
Future<Map<String, dynamic>> googleLogin() async {
try {
final GoogleSignInAccount? googleUser = await GoogleSignIn().signIn();
if (googleUser == null) {
return {
'authenticated': false,
'isNewUser': false
}; // User cancelled the sign-in process
}
final GoogleSignInAuthentication googleAuth =
await googleUser.authentication;
final credential = GoogleAuthProvider.credential(
accessToken: googleAuth.accessToken,
idToken: googleAuth.idToken,
);
UserCredential userCredential =
await FirebaseAuth.instance.signInWithCredential(credential);
bool? isNewUser = userCredential.additionalUserInfo?.isNewUser;
User? user = userCredential.user;
if (user == null)
return {'authenticated': false, 'isNewUser': isNewUser ?? false};
dynamic data = await IvivaAccount().executeService('UXP.GoogleLogin', {
'email': user.email!,
'displayName': user.displayName ?? "",
'photoUrl': user.photoURL ?? "",
});
await _authenticate(data[0]['apiKey']!);
return {'authenticated': _authenticated, 'isNewUser': isNewUser ?? false};
} catch (e) {
lmLog(e, level: 1);
return {'authenticated': false, 'isNewUser': false};
}
}