用FireStore中的where条件替换startAfter逻辑

时间:2019-01-30 19:24:56

标签: firebase dart flutter google-cloud-firestore

我在Firebase下面有一个查询,用于在给定键之后获取值,以用于分页。

Firestore.instance
.collection('uploads')
.where('active', isEqualTo: true)
.where('purge', isEqualTo: false)
.where('active_time', isLessThan: Timestamp.now())
.startAfter([lastKey])
.orderBy("active_time", descending: true)
.limit(count)
.getDocuments();

我想用另一种方法替换此查询。.我不想使用startAfter()条件来达到相同的效果。

where

但是我有0条记录,尽管我有更多记录。

为什么要尝试这个?

如果我使用startAfter()方法,则会收到Firestore.instance .collection('uploads') .where('active', isEqualTo: true) .where('purge', isEqualTo: false) .where('active_time', isLessThan: lastKey) .orderBy("active_time", descending: true) .limit(count) .getDocuments(); 错误。我找不到此问题的解决方案。因此,我想尝试另一种方法,因为cursor position is outside the range of the original query是一个时间戳字段,所以我想根据最后获得的时间戳值获取下一组旧记录。

我想解决异常或采用其他方法来返回数据。

PS:。这是Dart / Flutter代码。

0 个答案:

没有答案