首页 > 解决方案 > Flutter/Firebase/flutter_login_facebook - 成功检索令牌,但将其传递给 signInWithCredential 时显示为空?

问题描述

我已经集成了 firebase/google 登录,现在我正在尝试集成 Facebook 登录。我已经设置了我的应用程序,以便我可以成功登录 Facebook 并检索我的访问令牌,但是,当我将它传递给 FirebaseAuth signInWithCredential 时,我得到了以下输出:

credential === AuthCredential(providerId: facebook.com, signInMethod: facebook.com, token: null)

我不确定为什么它没有被通过,这就是代码卡住的地方。这是我创建 Facebook 登录功能的代码:

Future<String> signInUserWithFacebook() async {
String returnValue = "error";
print('starting Facebook login');

final FacebookLogin fb = new FacebookLogin();

OurUser _user = OurUser();

final res = await fb.logIn(permissions:[
  FacebookPermission.publicProfile,
  FacebookPermission.email
]);

switch (res.status) {
  case FacebookLoginStatus.success:
   final FacebookAccessToken fbToken = res.accessToken;
    print('Result status is success');
    //Convert to Auth Credential
    final AuthCredential credential =
        FacebookAuthProvider.credential(fbToken.token);
    print('token === ' + res.accessToken.token.toString());
   print('credential === ' + credential.toString());

    //User Credential to Sign in with Firebase
    final result = await _auth.signInWithCredential(credential);

    print('results === ' + result.toString());

    _user.uid = result.user.uid;
    _user.email = result.user.email;
    _user.fullName = result.user.displayName;

    OurDatabase().createUser(_user);

    await OurDatabase().getUserInfo(result.user.uid);
    if (_currentUser != null) {
      returnValue = "success";
    }
    break;
  case FacebookLoginStatus.cancel:
    print('Login cancelled by the user.');
    break;
  case FacebookLoginStatus.error:
    print('Something went wrong with the login process.');
    break;
}
return returnValue;

}

谁能帮我?

标签: firebasefacebookflutterdartfirebase-authentication

解决方案


推荐阅读