I am trying to implement facebook signin/login on my app and I keep getting this facebook errors. Is there something I am not getting right; maybe someone can help.
I have tried all I know I can towards solving this issue but nothing seems to work. Even if it means refacturing my code.
the error I am getting
My code:
class _LoginState extends State<Login> {
User myUser;
bool isLoggedIn = false;
AuthenticationService auth = AuthenticationService();
void login() {
auth.facebookSignIn().then((response) {
if (response != null) {
isLoggedIn = true;
myUser = response;
setState(() {});
}
});
}
@override
Widget build(BuildContext context) {
final validationService = Provider.of<SigninModel>(context);
return Scaffold(
body: SafeArea(
child: SingleChildScrollView(
child: Padding(
padding: const EdgeInsets.only(left: 30.0, right: 30.0, top: 10.0),
child: Column(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
_buildHeader(context),
SizedBox(height: 25),
Container(
child: isLoggedIn
? Container(
child: Text(myUser.displayName),
)
: CustomLoginGF(
onTap: () {
AuthenticationService().facebookSignIn();
},
title: 'Sign in with Facebook',
width: 20.0,
images: 'assets/images/facebook.png',
heights: 20.0,
style: GoogleFonts.workSans(
fontSize: 16,
fontWeight: FontWeight.w500,
color: Colors.black,
),
),
),
}
Authentication
final _facebookLogin = FacebookLogin();
Future<User> facebookSignIn() async {
try {
final result = await _facebookLogin.logInWithReadPermissions(['email']);
print('facebook login access token: ${result.accessToken}');
print('facebook login error message: ${result.errorMessage}');
print('facebook login status: ${result.status}');
switch (result.status) {
case FacebookLoginStatus.loggedIn:
print(result.accessToken.token);
break;
case FacebookLoginStatus.cancelledByUser:
print('CANCELED BY USER');
break;
case FacebookLoginStatus.error:
print(result.errorMessage);
break;
}
if (result.status == FacebookLoginStatus.loggedIn) {
print('facebook login result status: ${result.status}');
print('facebook login result: ${result.toString()}');
final AuthCredential credential =
FacebookAuthProvider.credential(result.accessToken.token);
UserCredential userCredential =
await firebaseAuth.signInWithCredential(credential);
print('user credential: ${userCredential.user.displayName}');
return userCredential.user;
}
return null;
} on FirebaseAuthException catch (e) {
print('facebook error: ${e.message}');
return null;
}
}
