我正在尝试通过使用Firebase来实现Facebook社交登录,我想我已经快完成了,但是控制台以某种方式告诉我用户由于某种原因而取消了。
有一点,该代码无法正常工作并打印出Facebook登录失败,但是我将acebookLogin.logInWithReadPermissions中的参数从"email"
更改为"email", "public_profile", "user_friends"
,这导致了下一个错误行
这是尝试调用Facebook登录名的方法。
Future<FirebaseUser> startFacebookLogin() async {
var facebookLogin = new FacebookLogin();
final result = await facebookLogin.logInWithReadPermissions(["email", "public_profile", "user_friends"]);
FacebookAccessToken myToken = result.accessToken;
switch (result.status) {
case FacebookLoginStatus.loggedIn:
AuthCredential credential = FacebookAuthProvider.getCredential(
accessToken: myToken.token);
FirebaseUser facebookUser = await FirebaseAuth.instance
.signInWithCredential(credential);
return facebookUser;
break;
case FacebookLoginStatus.cancelledByUser:
print("Facebook sign in cancelled by user");
break;
case FacebookLoginStatus.error:
print("Facebook sign in failed");
break;
}
}
,按下此IconButton即可激活社交登录。
IconButton(
onPressed: () => startFacebookLogin().then((FirebaseUser user) =>
print(user)).catchError((e) => print(e)),
icon: new Icon(const IconData(0xe900, fontFamily: 'facebook')),
color: Colors.blue,
)
不太确定是什么原因导致了CancelledByUser案。
答案 0 :(得分:0)
Test Users
也会发生这种情况吗?
我想知道是否可能是您的应用在Facebook上的状态为In Development
,而您正尝试使用与该应用所注册的帐户不同的帐户来测试登录。