【发布时间】:2019-04-20 06:04:18
【问题描述】:
我有一个使用 Cloud Firestore 的 Flutter 项目。在我的一个小部件中,我有一个 StreamBuilder,可以理想地从数据库中读取快照。理论上,我用于从远程服务器读取的 API 应该足够抽象,可以将 Firestore 换成不同的实现。
class Database {
Stream<QuerySnapshot> get snapshots => Firestore.instance.collection('entires').snapshots();
Stream<List<String>> get entries => snapshots.map((snapshot) => snapshot.documents.map((document) => document.data['name']).toList());
}
如果我的 StreamBuilder 使用 snapshots,则 AsyncSnapshot<QuerySnapshot> 有数据(hasData 返回 true)。
如果我的 StreamBuilder 使用entries,那么AsyncSnapshot<List<String>> 将永远不会有数据(hasData 返回 false)---即使我成功打印出数据是什么(我的返回结果是填充的字符串列表) .
我希望我的Database 界面不受 Firestore 的影响。所以,我的问题是:为什么即使我有数据,StreamBuilder 的 AsyncSnapshot 也不返回任何内容?
【问题讨论】:
标签: firebase flutter google-cloud-firestore