signInWithFacebook method
Implementation
Future<SocialLoginDataModel?> signInWithFacebook() async {
try {
final LoginResult result = await FacebookAuth.instance
.login();
if (result.status == LoginStatus.success) {
// you are logged
AccessToken? accessToken = result.accessToken;
final OAuthCredential credential =
FacebookAuthProvider.credential(accessToken?.token ?? "");
// Once signed in, return the UserCredential
final userCredential =
await FirebaseAuth.instance.signInWithCredential(credential);
User? firebaseUser = userCredential.user;
return SocialLoginDataModel(
socialId: firebaseUser?.providerData.first.uid ?? "",
firebaseAuthUser: firebaseUser,
errorMessage: _successConst,
status: true);
} else {
return SocialLoginDataModel(
socialId: null,
firebaseAuthUser: null,
errorMessage: result.message ?? _failureConst,
status: false);
}
} catch (e) {
return SocialLoginDataModel(
socialId: null,
firebaseAuthUser: null,
errorMessage: e.toString(),
status: false);
}
}