【问题标题】:The method 'fromDocument' isn't defined for the type 'User'. (undefined_method )没有为“用户”类型定义方法“fromDocument”。 (未定义方法)
【发布时间】:2021-08-02 17:17:18
【问题描述】:

我尝试使用下面的代码在 Document 快照中创建一个用户实例,但是当我导入 user.dart 并调用“user.fromDocument(docs)”时,它显示一个错误,即未为该类型定义方法 fromDocument用户

class user {
  final String id;
  final String username;
  final String occupation;
  final String email;
  final String description;


  user(
      {this.id,
      this.username,
      this.occupation,
      this.email,
      this.description,
      });

  factory user.fromDocument(DocumentSnapshot doc) {
    return user(
        id: doc['id'],
        email: doc['email'],
        occupation: doc['occupation'],
        photourl: doc['photoUrl'],
        description: doc['description'],
        username: doc['displayName']);
  }
}
createUserInFirestore() async {
final GoogleSignInAccount user = _googleSignIn.currentUser;
    DocumentSnapshot doc = await usersRef.doc(user.id).get();
if (!doc.exists) {
      final username = await Navigator.push(
          context, MaterialPageRoute(builder: (Context) => CreateAccount()));

usersRef.doc(user.id).set({
        "id": user.id,
        "Occupation": username,
        "photoUrl": user.photoUrl,
        "email": user.email,
        "displayName": user.displayName,
        "description": "",
        "timestamp": timestamp
      });
      Navigator.pushNamed(context, HomePage.id);
      usersRef.doc(user.id).get();
    } else if (doc.exists) {
      Navigator.pushNamed(context, HomePage.id);
    }

    **currentUser = user.fromDocument(doc);**
    print(currentUser);
    print(currentUser.username);
  }

【问题讨论】:

    标签: firebase flutter dart firebase-realtime-database google-cloud-firestore


    【解决方案1】:

    这是因为下面提到的用户是在顶部定义的 GoogleSignInAccount 的实例,而不是您的类用户的实例,请查看您的代码行:

    final GoogleSignInAccount user = _googleSignIn.currentUser;
    

    【讨论】:

      【解决方案2】:

      我的问题解决了 将类用户的名称更改为 GUser 或 UserG 或您想要的任何名称。 例如 Guser 类

      【讨论】:

        猜你喜欢
        • 2020-12-24
        • 2022-11-21
        • 2020-12-15
        • 2021-09-02
        • 1970-01-01
        • 2022-11-03
        • 2021-03-19
        • 2021-10-19
        • 2020-12-14
        相关资源
        最近更新 更多