Skip to content

Instantly share code, notes, and snippets.

@arnaudelub
Created March 23, 2021 14:34
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save arnaudelub/73e6d4ddb1670469ff94a009fd2a5d4a to your computer and use it in GitHub Desktop.
Save arnaudelub/73e6d4ddb1670469ff94a009fd2a5d4a to your computer and use it in GitHub Desktop.
facebook sign in
Future<Either<AuthFailure, Unit>> signInWithFacebook({bool reauth = false}) async {
try {
final result = await _facebookLogin.logIn(['email']);
auth.User previousUser;
switch (result.status) {
case FacebookLoginStatus.loggedIn:
final FacebookAccessToken accessToken = result.accessToken;
final facebookAuthCred =
auth.FacebookAuthProvider.credential(accessToken.token);
if (reauth) {
previousUser = await getCurrentUser();
await previousUser.linkWithCredential(facebookAuthCred);
} else {
await _firebaseAuth.signInWithCredential(facebookAuthCred);
}
break;
case FacebookLoginStatus.cancelledByUser:
return const Left(AuthFailure.cancelledByUser());
case FacebookLoginStatus.error:
return const Left(AuthFailure.serverError());
}
return right(unit);
} on PlatformException catch (e) {
print(e);
return const Left(AuthFailure.serverError());
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment