当文档内有一个子集合和我想要的数据字段时,我如何访问该文档内的数据?。例如我想访问字段“名称”
我已经试过了:
FirebaseFirestore.instance
.collection('Rooms')
.doc('8w0TE4D04xyeGgL3xAyk') //ID from specific room (RoomA,RoomB...)
.get()
.then((QuerySnapshot querySnapshot) => {
querySnapshot.docs.forEach((doc) {
print(doc["name"]);
});
});
这是在控制台中给我的错误:
<块引用>错误:无法将参数类型“Set Function(QuerySnapshot)”分配给参数类型“FutureOr Function(DocumentSnapshot)”。 (argument_type_not_assignable at [proyectoihc2] lib\database.dart:66)
答案 0 :(得分:1)
这就是你做错的地方,
要么这样做
(value){
...
}
或者如果你的函数只有一行就使用这个
(value) => print(value);
在 dart 中,只有 {}
将被视为数据结构 Set
因此,在这种情况下,您将函数分配给 Set,因此会出现错误。
其他指针:-
您正在对 QuerySnapshot 调用 for 循环,这是错误的,因为您获取的是单个文档而不是文档集合。
您在最新版本的 firebase 插件中访问密钥的方式是这样
doc.data()['name']