类型 '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();

您需要使用快照将其更改为查询快照。