Facebook社交登录风起云涌

时间:2019-06-14 12:47:09

标签: firebase flutter dart firebase-authentication facebook-login

我正在尝试通过使用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案。

1 个答案:

答案 0 :(得分:0)

Test Users也会发生这种情况吗?

我想知道是否可能是您的应用在Facebook上的状态为In Development,而您正尝试使用与该应用所注册的帐户不同的帐户来测试登录。