Flutter 颤振:将集合传递到流

Flutter 颤振:将集合传递到流,flutter,dart,google-cloud-firestore,stream,Flutter,Dart,Google Cloud Firestore,Stream,我有一个从Firestore获取数据的应用程序,我想获取数据并通过StreamProvider显示,我需要在其中使用userAdCollection获取myAds。。。他们都在同一个班里 我收到这个错误: 错误:未为类“Future”定义getter“userAdCollection” class DatabaseService{ Future addMyAds() async{ final FirebaseUser user = await _auth.currentUser

我有一个从Firestore获取数据的应用程序,我想获取数据并通过StreamProvider显示,我需要在其中使用userAdCollection获取myAds。。。他们都在同一个班里

我收到这个错误: 错误:未为类“Future”定义getter“userAdCollection”

class DatabaseService{

    Future addMyAds() async{
    final FirebaseUser user = await _auth.currentUser();
    final CollectionReference userAdCollection = Firestore.instance.collection(user.uid);
    }

    Stream<List<AdModel>> get myAds{
        return addMyAds().userAdCollection.snapshots()
            .map(_adListFromSnapshot);
      }
}
类数据库服务{
Future addMyAds()异步{
最终FirebaseUser用户=等待_auth.currentUser();
最终收集引用userAdCollection=Firestore.instance.collection(user.uid);
}
流获取我的广告{
返回addMyAds().userAdCollection.snapshots()
.map(_adListFromSnapshot);
}
}
我在这里使用这个类作为StreamProvider的值:

return StreamProvider<List<AdModel>>.value(
  value: DatabaseService().myAds,
   Scaffold(
      appBar: AppBar(),
      body: Column(),)
         
           
返回StreamProvider.value(
值:DatabaseService().myAds,
脚手架(
appBar:appBar(),
正文:列(),)

您应该使getter成为一个返回流的方法,您应该很好!不要忘记在.map(\u adListFromSnapshot)之后使用.toList()

像这样:

Stream<List<AdModel>> myAds(){
    return addMyAds().userAdCollection.snapshots()
        .map(_adListFromSnapshot).toList();
  }
streammyads(){
返回addMyAds().userAdCollection.snapshots()
.map(_adListFromSnapshot).toList();
}

它不起作用,给了我以下错误:错误:没有为类“Future”定义getter“userAdCollection”。Ottnik代码仍然是原来的buddy..没有任何更改我将它从getter更改为方法,您可以查看29分钟前发生的最后一次编辑我收到2个错误:错误:方法必须有一个参数的显式列表rs.(在[hpxksa]lib/services/database.dart:123处缺少\u方法\u参数)错误:没有为类型“Future”定义getter“userAdCollection”。(在[hpxksa]lib/services/database.dart:124处未定义\u getter)