大家好,我是新手, 我正在尝试从firebase的几本文档(列表)中获取什么,并将它们组合到一个列表中 但是陌生人的行为阻止了信息流开始/结束
我来自android native世界,我尝试过类似的代码,它可以工作,但是使用RxDart却不起作用:(
这是我的代码:
class AdvanceSearchBloc extends BaseBlock {
Observable<List<Nanny>> nanniesStream;
PublishSubject<List<AreaItem>> chosenAreaSink = PublishSubject<List<AreaItem>>();
AdvanceSearchBloc() {
FireBaseApi fireBaseApi = FireBaseApi();
nanniesStream = chosenAreaSink
.concatMap((areas) {
logInfo("areas size: ${areas.length}");
return Observable.fromIterable(areas)
.flatMap((area) => _searchAreaNannies(area.name, fireBaseApi))
.toList()
.asObservable();
})
.asyncMap((nannyListOfList) {
logInfo("***********list of list size ${nannyListOfList.length} ***********");
List<Nanny> nannies = List<Nanny>();
nannyListOfList.forEach((list) {
list.forEach((nanny) => nannies.add(nanny));
});
return nannies;
});
}
@override
void dispose(){
chosenAreaSink.close();
}
static Stream<List<Nanny>> _searchAreaNannies(String area, FireBaseApi api) {
return api.searchNanniesByArea(area);
}
}
_searchAreaNannies函数在我尝试搜索一个区域时工作良好。 我希望流将开始并获得一个Marge列表的正确结果