我尝试使用whereGreaterThan和whereArrayContains复合查询从Firestore中获取数据。由于某种原因,这种组合似乎行不通。如果我省略了这两条语句中的一条,它们工作并返回几乎相同的数据。
someCollection
?.whereGreaterThan("date", Date().startOfPreviousMonth)
?.whereArrayContains("ids", id)
?.get()
?.addOnSuccessListener { .... }
?.addOnFailureListener { .... }在文档中,只说明对复合查询只有这些限制:
限制
注意以下对!=查询的限制:
只有给定字段存在的
对我来说,这些都比不上我的问题。有什么建议吗?
发布于 2022-02-23 09:29:42
在同一个查询中使用whereGreaterThan()和whereArrayContains()方法调用不需要创建index是不可能的。
在Firebase控制台中手动创建相应的索引,或者单击Android日志中的链接自动创建索引。
在Android中,您可以附加一个失败监听器并从错误消息中获取URL。
https://stackoverflow.com/questions/71234013
复制相似问题