signInWithFacebook method
Future<User?>
signInWithFacebook(
)
Implementation
Future<User?> signInWithFacebook() async {
try {
// Attempt Facebook login
final LoginResult result = await FacebookAuth.instance.login(
loginBehavior: LoginBehavior.webOnly,
);
// Check if the login was successful
if (result.status == LoginStatus.success) {
// Check if accessToken is not null
final accessToken = result.accessToken;
if (accessToken != null) {
final String token = accessToken.tokenString; // Use tokenString instead of token
// Log the obtained token for debugging purposes
print("Facebook Access Token: $token");
// Create Facebook authentication credentials
final AuthCredential credential = FacebookAuthProvider.credential(token);
// Sign in to Firebase using Facebook credentials
UserCredential userCredential = await _auth.signInWithCredential(credential);
return userCredential.user;
} else {
print("Access token is null.");
}
} else {
print("Facebook login failed. Status: ${result.status}");
if (result.message != null) {
print("Error message: ${result.message}");
}
}
} catch (e) {
// Log detailed error information
print("Error during Facebook sign-in: ${e.toString()}");
}
return null;
}