如何获取按 DocumentID 降序的文档?

cre*_*not 11 firebase google-cloud-firestore

我遇到了这个问题中遇到的问题。因为另一个问题(和答案)没有解决问题,我正在写一个新问题。

orderBy(FieldPath.documentId(), 'desc')
Run Code Online (Sandbox Code Playgroud)

上述查询将失败并显示以下错误消息:

查询需要索引。您可以在此处创建它:...

如另一个问题中所述,由于以下错误消息,无法创建该索引:

__name__ 不支持仅索引

因为相反的查询工作正常

orderBy(FieldPath.documentId(), 'asc')
Run Code Online (Sandbox Code Playgroud)

我想知道为什么降序查询不起作用。对我来说这并没有多大意义,尤其是因为这应该是一个非常常见的用例。

如果有上述问题的解决方案,即如果有一种方法可以创建一个有效的索引,那就太棒了'desc'。但是,我预计这不是一种可能性,因此将表述一个更广泛的问题。

我如何真正按文档 ID 按降序获取我的文档?

我显然可以执行'asc'查询,然后反转我检索到的列表。
但这不起作用,因为我需要limit()查询。我不能仅仅为了获得降序而支付集合中的所有文档。
这样,即使我只想获得一个(最后一个),我也会集合中的所有文档读取付费这是一篇很棒的文章,讨论了这种做法的潜在后果,因为它无法扩展

我是否真的需要创建一个名为 的字段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"
Run Code Online (Sandbox Code Playgroud)