zel*_*g74 12 android firebase google-cloud-firestore
我想从documentId
降序排序的Firestore数据库中获取数据.我打电话的时候:
firestore.collection("users")
.orderBy(FieldPath.documentId(), Query.Direction.DESCENDING)
.get()
.addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {...});
Run Code Online (Sandbox Code Playgroud)
我收到错误:
FAILED_PRECONDITION:查询需要索引.
通过Firebase控制台链接创建自动索引.不幸的是,在这种情况下,自动创建似乎不起作用.当我点击Create Index时,我收到一条消息:
仅__name__不支持索引
对于手动索引创建,doc仅说明了按字段名称索引(不是documentId
).有谁知道如何从documentId
降序排序的Firestore中获取数据?
我知道我可以在客户端重新排序数据,但是通过id排序是一项非常自然的任务,我必须遗漏一些东西.谢谢.我用:
compile 'com.google.firebase:firebase-firestore:11.6.0'
Run Code Online (Sandbox Code Playgroud)
作为公司的FireStore文件中所述这里,云计算公司的FireStore不提供自动生成的docIDs自动排序。
重要提示:与Firebase实时数据库中的“推送ID”不同,Cloud Firestore自动生成的ID不提供任何自动排序。如果希望能够按创建日期订购文档,则应将时间戳记存储为文档中的字段。
因此,您可以通过添加一个额外的字段createdDate并仅使用批注 @ServerTimestamp 对其进行设置,从而在用户POJO的类字段之前声明它来实现排序。
@ServerTimestamp
Date createdDate;
Run Code Online (Sandbox Code Playgroud)
另外,当在Firestore上写POJO时,必须确保此字段为null,在将其保存到Firestore之前,请勿对其设置任何值。
归档时间: |
|
查看次数: |
6362 次 |
最近记录: |