Flutter 颤振:将集合传递到流
我有一个从Firestore获取数据的应用程序,我想获取数据并通过StreamProvider显示,我需要在其中使用userAdCollection获取myAds。。。他们都在同一个班里 我收到这个错误: 错误:未为类“Future”定义getter“userAdCollection”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
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)