【发布时间】:2019-08-18 13:46:57
【问题描述】:
我正在使用 Flutter 从少数设备交换 Firestore 数据。
如果我使用 StreamBuilder 一切正常,但我不喜欢将业务逻辑与 UI 混合。我更喜欢使用 BLOC 作为模式使用 flutter_bloc 插件。
但是flutter_bloc是这样工作的:
步骤:
事件 ------------> 新数据但没有新 UI 事件
异步请求
异步响应
State (mapEventToState)-------> ¿我如何获得新的状态?
我没有“UI 事件”,因为 Firestore 数据正在从另一台设备更新,所以我无法更新状态。
我可以在 bloc 构造函数上使用类似的东西:
Stream<QuerySnapshot> query;
QuedadaBloc(){
query = Firestore.instance.collection('my_collection').snapshots();
query.listen((datos){
dispatch(Fetch()); // send fictitious UI event
});
}
但我认为这不是正确的方法。
¿有什么建议吗?
非常感谢。
J。巴勃罗。
【问题讨论】:
-
您提出的解决方案在我看来基本上没问题。你最关心的是什么?
-
每次用户触摸 UI 时,您都会得到 2 个答案:一个是 BLOC 答案流,另一个是 FireStore Collection SnapShot。
标签: flutter google-cloud-firestore bloc