类型 'Query' 不是类型 'Stream<QuerySnapshot>?' 的子类型
type 'Query' is not a subtype of type 'Stream<QuerySnapshot>?'
在 Flutter 中,我有一个名为 vendors 的集合,我将根据其集合的图像获取集合
这是我的代码:
class _TopPickStoreState extends State<TopPickStore>{
StoreService _storeServices = StoreService();
@override
Widget build(BuildContext context){
return Container(
child: StreamBuilder<QuerySnapshot>(
stream: _storeServices.getTopPickedStore(),
builder: (BuildContext context, AsyncSnapshot<QuerySnapshot> snapShot){
if(!snapShot.hasData)return CircularProgressIndicator();
return Column(
children: [
Flexible(
child: ListView(
scrollDirection: Axis.horizontal,
children: snapShot.data.docs.map((DocumentSnapshot document){
return Container(
width: 80,
child: Column(
children: [
Image.network(document['imageUrl']),
]
),
)
;}).toList(),
),
)
],
);
}
),
);
}
}
这是获取集合的函数:
import 'package:cloud_firestore/cloud_firestore.dart';
class StoreService{
getTopPickedStore(){
return FirebaseFirestore.instance.collection('vendors')
.where('accVerified', isEqualTo:true)
.where('isTopPicked',isEqualTo: true)
.orderBy('shopName');
}
}
我收到了这条错误信息:
类型 'Query' 不是类型 'Stream<QuerySnapshot ?'
的子类型
谁能帮我解决这个问题?
改成这样:
getTopPickedStore() async {
return await FirebaseFirestore.instance.collection('vendors')
.where('accVerified', isEqualTo:true)
.where('isTopPicked',isEqualTo: true)
.orderBy('shopName').snapshots();
您需要使用快照将其更改为查询快照。
在 Flutter 中,我有一个名为 vendors 的集合,我将根据其集合的图像获取集合
这是我的代码:
class _TopPickStoreState extends State<TopPickStore>{
StoreService _storeServices = StoreService();
@override
Widget build(BuildContext context){
return Container(
child: StreamBuilder<QuerySnapshot>(
stream: _storeServices.getTopPickedStore(),
builder: (BuildContext context, AsyncSnapshot<QuerySnapshot> snapShot){
if(!snapShot.hasData)return CircularProgressIndicator();
return Column(
children: [
Flexible(
child: ListView(
scrollDirection: Axis.horizontal,
children: snapShot.data.docs.map((DocumentSnapshot document){
return Container(
width: 80,
child: Column(
children: [
Image.network(document['imageUrl']),
]
),
)
;}).toList(),
),
)
],
);
}
),
);
} }
这是获取集合的函数:
import 'package:cloud_firestore/cloud_firestore.dart';
class StoreService{
getTopPickedStore(){
return FirebaseFirestore.instance.collection('vendors')
.where('accVerified', isEqualTo:true)
.where('isTopPicked',isEqualTo: true)
.orderBy('shopName');
}
}
我收到了这条错误信息:
类型 'Query' 不是类型 'Stream<QuerySnapshot ?'
的子类型谁能帮我解决这个问题?
改成这样:
getTopPickedStore() async {
return await FirebaseFirestore.instance.collection('vendors')
.where('accVerified', isEqualTo:true)
.where('isTopPicked',isEqualTo: true)
.orderBy('shopName').snapshots();
您需要使用快照将其更改为查询快照。