【发布时间】:2018-05-06 08:16:32
【问题描述】:
我想从我的 Firestore 数据库中获取按documentId 降序排列的数据。当我打电话时:
firestore.collection("users")
.orderBy(FieldPath.documentId(), Query.Direction.DESCENDING)
.get()
.addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {...});
我收到错误:
FAILED_PRECONDITION:查询需要索引。
带有用于自动创建索引的 Firebase 控制台的链接。不幸的是,在这种情况下,自动创建似乎不起作用。当我点击创建索引时,我收到一条消息:
__name__ 不支持仅索引
对于手动索引创建,doc 仅表示按字段名称(而不是documentId)进行索引。有谁知道如何从 Firestore 中获取按documentId 降序排列的数据?
我知道我可以在客户端重新排序数据,但是按 id 排序是一项很自然的任务,我一定会遗漏一些东西。谢谢你。我用:
compile 'com.google.firebase:firebase-firestore:11.6.0'
【问题讨论】:
-
firestore 中的读取权限如何?
-
你能分享你的“规则”json吗?也许你需要类似:'".indexOn": ["documentId"]'
-
在测试时,我有默认的 Firestore 访问权限,即允许所有人读写。 @NicoT.:请您发送一个文档链接吗?
-
@zelig74 这是文档:firebase.google.com/docs/database/security/indexing-data
-
@NicoT。谢谢,但这是针对实时数据库的文档,而不是针对 Cloud Firestore 的文档。
标签: android firebase google-cloud-firestore