在小部件的build()方法中,我发现了这一点:
StreamBuilder(
stream: Firestore.instance
.collection('messages')
.document(groupChatId)
.collection(groupChatId)
.orderBy('timestamp', descending: true)
.limit(20)
.snapshots(),
builder: (BuildContext context, AsyncSnapshot<QuerySnapshot> snapshot) {
...
我怀疑无论何时调用build()方法,此代码都会获取20个文档。 如果是这样,我发现这效率很低。 (因为Firestore是根据提取的文档计费的。)
最好在集合上使用listen(),然后仅对其进行更新,以便仅在集合更改时才查询数据吗?如果是这样,我不太确定如何实现。