Java 如何检索firebase集合中的最后一个文档。我还想获取文档字段值

Java 如何检索firebase集合中的最后一个文档。我还想获取文档字段值,java,android,firebase,google-cloud-firestore,Java,Android,Firebase,Google Cloud Firestore,如何从Cloud Firestore集合中检索最后一个文档?我还想获取文档字段值 这是下图: 如何检索firebase集合中的最后一个文档 要解决此问题,您需要使用如下所示的查询: FirebaseFirestore rootRef = FirebaseFirestore.getInstance(); Query query = rootRef.collection("High Volume") .orderBy("Time", Query.Direction.DESCENDING)

如何从Cloud Firestore集合中检索最后一个文档?我还想获取文档字段值

这是下图:

如何检索firebase集合中的最后一个文档

要解决此问题,您需要使用如下所示的查询:

FirebaseFirestore rootRef = FirebaseFirestore.getInstance();
Query query = rootRef.collection("High Volume")
    .orderBy("Time", Query.Direction.DESCENDING)
    .limit(1);
query.get().addOnCompleteListener(/* ... */);

此查询将根据
time
属性对结果进行排序,并将结果限制为一个。

就性能而言,排序是否比为每个项目使用标志属性“isLast”更好?因此,我们将进行一个查询,其中isLast==true以查找最后一个。事实上,缺点是必须使这样一个标志始终保持最新。@Francesco我认为这不是一个更好的方法,因为对于每一个新添加的文档,您都需要更新旧的isLast文档。完全同意这一点。总的来说,我想知道对数据集进行排序以获取最新条目是否(远)比对布尔属性进行查询更昂贵,以及是否还有其他可能。@Francesco性能来自于查询返回的元素数。如果查询数据库并使用
limit(1)
调用,则如果通过返回单个元素的布尔属性查询数据库,则调用是完全相同的。@Nuqo您不能。它们之间没有继承关系。你在找什么?