没有为“用户”类型定义方法“fromDocument”。 (未定义方法)
Posted
技术标签:
【中文标题】没有为“用户”类型定义方法“fromDocument”。 (未定义方法)【英文标题】:The method 'fromDocument' isn't defined for the type 'User'. (undefined_method ) 【发布时间】: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);
【问题讨论】:
【参考方案1】:这是因为下面提到的用户是在顶部定义的 GoogleSignInAccount 的实例,而不是您的类用户的实例,请查看您的代码行:
final GoogleSignInAccount user = _googleSignIn.currentUser;
【讨论】:
【参考方案2】:我的问题解决了 将类用户的名称更改为 GUser 或 UserG 或您想要的任何名称。 例如 Guser 类
【讨论】:
以上是关于没有为“用户”类型定义方法“fromDocument”。 (未定义方法)的主要内容,如果未能解决你的问题,请参考以下文章
没有为“地理定位器”类型定义方法“placemarkFromCoordinates”
没有为“ThemeProvider”类型定义“of”方法。在颤振中