【问题标题】:how to Solve 'Credential' isn't defined for the type 'FacebookAuthProvider'如何解决“凭据”未针对“FacebookAuthProvider”类型定义
【发布时间】:2021-04-01 05:34:25
【问题描述】:

我正在使用我从 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;

      }

我从上面的代码中得到了 2 个错误:

错误:需要 1 个位置参数,但找到了 0 个。 (not_enough_positional_arguments at [flutter_app] lib\login_page.dart:31)

错误:未定义命名参数“accessToken”。 (undefined_named_pa​​rameter at [flutter_app] lib\login_page.dart:32)

据我了解,“FirebaseUser”和“getCredential”已贬值,因此我将它们更改为 User 和 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;
      }

但现在我得到了错误:

错误:没有为“FacebookAuthProvider”类型定义“凭据”方法。 ([flutter_app] lib\login_page.dart:33 处的 undefined_method)

我将 FirebaseUser 更改为 User 并将 getCredential 更改为 Credential 是否有错误? 如何摆脱这个问题?

【问题讨论】:

    标签: flutter dart firebase-authentication


    【解决方案1】:

    拼写为credential,小写c。所以:

    AuthCredential credential = FacebookAuthProvider.credential(
        accessToken: facebookAccessToken.token);
    

    对于这种情况,我发现文档最有帮助:https://pub.dev/documentation/firebase_auth_platform_interface/latest/firebase_auth_platform_interface/FacebookAuthProvider-class.html

    【讨论】:

      猜你喜欢
      • 2021-07-28
      • 2018-02-05
      • 1970-01-01
      • 2015-01-02
      • 1970-01-01
      • 2013-05-25
      • 2011-07-16
      • 2016-12-07
      • 2019-05-09
      相关资源
      最近更新 更多