flutter - 解决我的 Flutter Facebook 登录/登录错误
问题描述
我正在尝试在我的应用程序上实现 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;
}
}
解决方案
推荐阅读
- r - R: 为什么 c(4,4) 是双精度数?
- java - 数据库问题(如何添加预先实现的选择语句)
- asp.net-core - ASP.NET CORE WEB-API 中的多个 HTTPGET 方法
- c++ - getValue() cplex C++
- flutter - Flutter,无法将字符串转换为日期
- javascript - 从 Gmail 邮件中提取主题和正文文本并导出为 CSV
- jquery - 如何获取已经在jquery中检查的所有记录
- javascript - 尝试访问 Api 中的数组但未返回任何内容
- c# - 如何返回我的旧式项目文件?
- c# - 在加载场景中实例化任何 GO 后构建时出现黑屏