signInWithGoogle method
Future<UserCredential?>
signInWithGoogle(
)
Implementation
Future<UserCredential?> signInWithGoogle() async {
final googleSignInAccount = await googleSignIn.signIn();
if (googleSignInAccount != null) {
try {
final googleSignInAuthentication =
await googleSignInAccount.authentication;
final credential = GoogleAuthProvider.credential(
accessToken: googleSignInAuthentication.accessToken,
idToken: googleSignInAuthentication.idToken,
);
var creds = await auth.signInWithCredential(credential);
if (creds.user != null) _errorStreamController.sink.add(null);
return creds;
} on FirebaseAuthException catch (e) {
switch (e.code) {
case 'account-exists-with-different-credential':
_errorStreamController.sink.add('Phonenumber already in use');
break;
case 'invalid-credential':
_errorStreamController.sink.add('Credential provided are invalid');
break;
case 'user-disabled':
_errorStreamController.sink.add('Account banned');
break;
case 'invalid-verification-code':
_errorStreamController.sink.add('OTP provided is Invalid');
break;
default:
_errorStreamController.add('Error occured. Contact admin!!');
break;
}
}
} else {
_errorStreamController.add('Sign In Failed. Try again afetr sometime');
return null;
}
}