#flutter #dart
#flutter #dart
Вопрос:
Я пытаюсь реализовать вход / вход в facebook в своем приложении, и я продолжаю получать эти ошибки facebook. Есть ли что-то, что я не понимаю правильно; может быть, кто-нибудь может помочь.
Я перепробовал все, что мог, для решения этой проблемы, но, похоже, ничего не работает. Даже если это означает рефакторинг моего кода.
ошибка, которую я получаю
Мой код:
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,
),
),
),
}
Аутентификация
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;
}
}