Facebook социальной логин для флаттера - PullRequest
0 голосов
/ 14 июня 2019

Я пытаюсь реализовать социальную регистрацию в Facebook через Firebase, и я думаю, что я почти закончил с этим, но почему-то консоль говорит мне, что пользователь почему-то отменяет.

OneДело в том, что код просто не работал и печатал, что вход в 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.

...