在Firestore中的最后一个文档之后继续查询

时间:2019-01-18 17:32:47

标签: flutter google-cloud-firestore

我在Firestore中有一组公寓文件,其中每个文件的ID是添加日期(以毫秒为单位)(以使它们看起来是随机的)。

现在,我需要根据价格(大于或小于用户选择的价格)查询那些公寓。

该应用具有类似Tinder的界面(堆叠了3张卡),当用户滑动第一个公寓时应加载一次公寓。

因此,我保存了最后一个文档单元的ID,并使用isGreaterThan查询来查询价格,并使用startAfter(lastId)将其限制为1个文档。但是startAfter还需要一个orderBy,该orderBy必须与isGreaterThan查询位于同一字段中。但是正如我之前所说,我需要它们是随机的,而不是按价格字段排序。

还有其他方法可以“恢复”查询,或者在最后一个文档ID甚至位置之后开始查询吗?

-

我的第一个想法是将价格分成一张布尔图。除了我还有其他要查询的地图(例如距离或面积)之外,因为范围过滤器仅在1个字段上起作用,但是每个组合都需要一个索引(这将导致成千上万个索引,并且firestore限制了200个索引)。

然后,我尝试将ID和价格组合在一个字段中,但是没有找到一种方法来拆分它并检索价格和ID,而没有下载整个文档,这将是无用且效率低下的,这是没有成功的。我试图避免)。

范围过滤器不能在多个字段上使用,因此在此无需执行任何操作。

我知道Firestore的构建是快速且可扩展的,但是我认为这不是一个非常复杂的查询。

谢谢您的时间。

0 个答案:

没有答案