0

我试图在我的项目中添加 Twitter 登录方法。当我在我的项目中尝试它时,我在网上有几行代码,它给我带来了错误。有人可以帮助我吗?

这是我的代码:

 Future<FirebaseUser> loginWithTwitter() async {
  var twitterLogin = new TwitterLogin(
    consumerKey: 'Y2MyConsumerKeyYKX',
    consumerSecret: 'xYXUMyConsumerSecretKeyjFAJZMyConsumerSecretKeyS3i',
  );

  final TwitterLoginResult result = await twitterLogin.authorize();

  switch (result.status) {
    case TwitterLoginStatus.loggedIn:
      var session=result.session;
      final AuthCredential credential= TwitterAuthProvider.getCredential(
          authToken: session.token,
          authTokenSecret: session.secret
      );
      FirebaseUser firebaseUser=(await _auth.signInWithCredential(credential)).user;
      print("twitter sign in"+firebaseUser.toString());
      break;
    case TwitterLoginStatus.cancelledByUser:
      break;
    case TwitterLoginStatus.error:
      break;
  }
  return null;
}

错误在于命令 SignInWithTwitter 和 Debug print。有人可以帮我解决这个问题。 在此处输入图像描述

在此处输入图像描述

4

1 回答 1

4

FirebaseAuth不包含调用的方法signInWithTwitter,如果你想使用 twitter 登录,那么你需要使用类TwitterAuthProvider

例如:

switch (result.status) {
  case TwitterLoginStatus.loggedIn:
    var session=result.session;
    final AuthCredential credential= TwitterAuthProvider.getCredential(
      authToken: session.token,
      authTokenSecret: session.secret
    );
    FirebaseUser firebaseUser=(await firebaseAuth.signInWithCredential(credential)).user;
    print("twitter sign in"+firebaseUser.toString());
    break;
  case TwitterLoginStatus.cancelledByUser:
    break;
  case TwitterLoginStatus.error:
    break;
}

在里面getCredential你可以添加authTokenandauthTokenSecret然后将变量作为参数传递给signInWithCredentials

于 2019-12-26T13:40:10.570 回答