【发布时间】:2018-08-31 16:05:59
【问题描述】:
我遇到了encountered in this question 的问题。因为另一个问题(和答案)没有解决问题的重点,所以我正在写一个新问题。
orderBy(FieldPath.documentId(), 'desc')
上述查询将失败并显示以下错误消息:
查询需要索引。你可以在这里创建它:...
如另一个问题中所述,由于以下错误消息,无法创建该索引:
__name__ 不支持仅索引
因为相反的查询工作正常:
orderBy(FieldPath.documentId(), 'asc')
我想知道为什么 降序查询 不起作用。对我来说,这并没有多大意义,尤其是因为这应该是一个非常常见的用例。
如果有解决上述问题的方法,那就太好了,即如果有一种方法可以创建一个索引,使'desc' 工作。但是,我认为这只是不可能的,因此会提出一个更广泛的问题。
如何真正按文档 ID 降序获取我的文档?
我显然可以执行'asc' 查询,然后反转我检索到的列表。
但这不起作用,因为我需要limit() 查询。我不能仅仅为了获得降序而为集合中的所有文档付费。
这样我会为所有文档付费即使我只想得到一个(最后一个),也会在集合中读取。 Here is a great article discussing potential consequences of this 因为它确实无法扩展。
我真的需要创建一个名为id 的字段,其中包含完全相同 documentID,只是为了在其上创建索引然后能够降序查询吗?
潜在的集合可能如下所示:
"q":
- id: "q"
"u":
- id: "u"
"i":
- id: "i"
"t":
- id: "t"
"e":
- id: "e"
"d":
- id: "d"
"u":
- id: "u"
"m":
- id: "m"
"b":
- id: "b"
【问题讨论】:
标签: firebase google-cloud-firestore