我有一个从Firestore提取数据的应用程序,我想获取数据并通过StreamProvider进行显示,我需要在userAdCollection内部获取myAds ...它们都在同一类中。
我收到此错误:
错误:未为类“ future ”定义 setter/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);
      }
}
我在这里使用此类作为StreamProvider的值:
return StreamProvider<List<AdModel>>.value(
  value: DatabaseService().myAds,
   Scaffold(
      appBar: AppBar(),
      body: Column(),)


最佳答案

您应该将getter用作返回流的方法,并且应该没问题! .map(_adListFromSnapshot)之后,请不要忘记使用.toList()
像这样:

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

09-17 05:48