Firestore中的复合查询-“ order by”和“ where”中的不同字段

时间:2020-07-29 20:18:54

标签: firebase flutter google-cloud-firestore

这将在Firebase Firestore中工作吗?

var result = await firestoreInstance
  .collection('messages')
  .where('place', whereIn: ["value1","value2","value3","value4","value5","value6","value7","value8","value9"])
  .orderBy('dateAdded')  
  .startAfterDocument(lastDocument)  
  .limit(documentLimit)  
  .getDocuments();

我的意思是,我想基于一个字段(“位置”)上的IN条件过滤数据,然后基于另一个字段(“ dateAdded”)对它进行分页。

它将在字段“ place”和“ dateAdded”上使用复合索引吗? 我的Firestore允许,它可以在Flutter SDK中使用吗?

1 个答案:

答案 0 :(得分:0)

应该可以正常工作-我已经在代码中执行了类似的操作。我通过尝试-通过“ EndBeforeDocument”调用分页 back 发现的一件事似乎需要 reverse orderBy,因此它将需要设置多个复合索引。为您创建这些索引 的页面的链接将从.get()调用的“ err”中返回(因此请适当地设置回调以捕获该错误)。

所以道格通常是正确的,顺便说一句,礼节很差,不用尝试(和/或搜索StackOverflow)就可以提出问题-您很幸运,因为我只是为应用程序库编写了自己的分页接口。虽然我打算很快以NPM软件包的形式发布该接口,但它可能对您没有帮助-我在React下使用了Web API(javascript)。