这是我的代码。我尝试使用data()代替,但这也不起作用。
Future getUserInterests(userId) async {
User currentUser = User();
await _firestore.collection('users').doc(userId).get().then((user) {
currentUser.name = user['name'];
currentUser.photo = user['photoUrl'];
currentUser.gender = user['gender'];
currentUser.interestedIn = user['interestedIn'];
});
return currentUser;
}
答案 0 :(得分:0)
您需要调用data()才能访问DocumentSnapshot内部的数据。
Map<String, dynamic> data = user.data();
currentUser.name = data['name'];
答案 1 :(得分:0)
您正在运行哪个Firebase软件包版本?新版本分别更改了方法[]
和data
的运算符get()
和getter data()
Future getUserInterests(userId) async {
User currentUser = User();
await _firestore.collection('users').doc(userId).get().then((user) {
Map<String, dynamic> doc = user.data();
currentUser.name = doc['name'];
currentUser.photo = doc['photoUrl'];
currentUser.gender = doc['gender'];
currentUser.interestedIn = doc['interestedIn'];
});
return currentUser;
}
答案 2 :(得分:0)
好吧,您正在将user
变量视为Map<String, dynamic>
(使用[]
访问器表示法),但是错误告诉您它是{{ 1}}。
不确定DocumentSnapshot
包含哪个字段(您使用的是哪个库?)。您应该查看所使用的任何库的文档,以了解如何访问所需的字段。