Flutter 如何解决';凭证';isn';t为类型';FacebookAuthProvider';

Flutter 如何解决';凭证';isn';t为类型';FacebookAuthProvider';,flutter,dart,firebase-authentication,Flutter,Dart,Firebase Authentication,我正在使用从github获得的以下代码: 来自github的代码: Future<FirebaseUser> facebookLogin(BuildContext context) async { FirebaseUser currentUser; try { final FacebookLoginResult facebookLoginResult = await fbLogin.logIn(['email']); if

我正在使用从github获得的以下代码:

来自github的代码:

Future<FirebaseUser> facebookLogin(BuildContext context) async {
    FirebaseUser currentUser;

    try {
      final FacebookLoginResult facebookLoginResult =
          await fbLogin.logIn(['email']);
      if (facebookLoginResult.status == FacebookLoginStatus.loggedIn) {
        FacebookAccessToken facebookAccessToken =
            facebookLoginResult.accessToken;
        AuthCredential credential = FacebookAuthProvider.getCredential(
            accessToken: facebookAccessToken.token);
        FirebaseUser user = (await auth.signInWithCredential(credential)).user;
        print("signed in" + user.displayName);
        return user;

      }
Future facebook登录(BuildContext上下文)异步{
FirebaseUser当前用户;
试一试{
最终FacebookLoginResult FacebookLoginResult=
等待fbLogin.logIn(['email']);
如果(facebookLoginResult.status==FacebookLoginStatus.loggedIn){
FacebookAccessToken FacebookAccessToken=
facebookLoginResult.accessToken;
AuthCredential credential=FacebookAuthProvider.getCredential(
accessToken:facebookAccessToken.token);
FirebaseUser用户=(等待身份验证登录,使用凭证(凭证)).user;
打印(“登录”+user.displayName);
返回用户;
}
我从上面的代码中得到了两个错误:

错误:应为1个位置参数,但找到0。(在[flatter\u app]lib\login\u页面上没有足够的位置参数。dart:31)

错误:未定义命名参数“accessToken”。[flatter\u app]lib\login\u页面上未定义的\u命名\u参数。dart:32)

据我所知,“FirebaseUser”和“getCredential”已贬值,因此我将其更改为User and Credential: 当前代码:

  Future<User> facebookLogin(BuildContext context) async {
    User currentUser;

    // fbLogin.loginBehavior = FacebookLoginBehavior.webViewOnly;
    // if you remove above comment then facebook login will take username and pasword for login in Webview
    try {
      final FacebookLoginResult facebookLoginResult =
      await fbLogin.logIn(['email']);
      if (facebookLoginResult.status == FacebookLoginStatus.loggedIn) {
        FacebookAccessToken facebookAccessToken =
            facebookLoginResult.accessToken;
        AuthCredential credential = FacebookAuthProvider.Credential(
            accessToken: facebookAccessToken.token);
        User user = (await auth.signInWithCredential(credential)).user;
        print("signed in" + user.displayName);
        return user;
      }
Future facebook登录(BuildContext上下文)异步{
用户当前用户;
//fbLogin.loginBehavior=FacebookLoginBehavior.webViewOnly;
//若你们删除了上面的评论,那个么facebook登录将在Webview中使用用户名和密码登录
试一试{
最终FacebookLoginResult FacebookLoginResult=
等待fbLogin.logIn(['email']);
如果(facebookLoginResult.status==FacebookLoginStatus.loggedIn){
FacebookAccessToken FacebookAccessToken=
facebookLoginResult.accessToken;
AuthCredential credential=FacebookAuthProvider.credential(
accessToken:facebookAccessToken.token);
用户用户=(使用凭证(凭证))等待身份验证登录。用户;
打印(“登录”+user.displayName);
返回用户;
}
但现在我得到了一个错误:

错误:没有为类型“FacebookAuthProvider”定义方法“Credential”。(在[Flatter\u app]lib\login\u页面未定义方法。dart:33)

我将FirebaseUser更改为User并将getCredential更改为Credential时出错了吗?
如何摆脱这个问题?

拼写是
credential
,带有小写的
c
。因此:

AuthCredential credential = FacebookAuthProvider.credential(
    accessToken: facebookAccessToken.token);
对于这种情况,我认为文档最有帮助: