[英]Flutter Cloud Firestore: error: The argument type 'Object? Function()' can't be assigned to the parameter type 'Map<String, dynamic>'
[英]Flutter: How to solve value type Object can't be assigned to Map<String, dynamic> on streambuilder
我试图从 firebase 获取数据并将数据显示到列表中,但在尝试将 map 文档数据放入列表以显示其内容时出现错误
这是我的代码
StreamBuilder<QuerySnapshot>(
stream: users.snapshots(),
builder: (BuildContext context,
AsyncSnapshot<QuerySnapshot> snapshot) {
if (snapshot.hasError) {
return const Center(
child: Text("Something went wrong"),
);
}
if (snapshot.connectionState == ConnectionState.waiting) {
return const Center(
child: Text("Loading"),
);
}
if (snapshot.hasData) {
return CustomScrollView(
slivers: [
SliverList(
delegate: SliverChildListDelegate(
snapshot.data!.docs.map(
(DocumentSnapshot document) {
Map<String, dynamic> data = document.data()!;
return ListTile(
onTap: () => callChatDetailsScreen(
context, data['name'], data['uid']),
title: Text(data['name']),
subtitle: Text(data['status']),
);
},
).toList(),
),
)
],
);
}
return Container();
})
我怎样才能解决这个问题?
改变这个:
(DocumentSnapshot document) {
进入这个:
(DocumentSnapshot<Map<String,dynamic>> document) {
data()
data()
T
类型的值,class DocumenSnapshot
以这种方式声明: abstract class DocumentSnapshot
abstract class DocumentSnapshot<T extends Object?>
Object
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.