我有一个从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();
}