Firebase Firestore集合的最大值

时间:2018-10-23 15:49:19

标签: java android firebase google-cloud-firestore

collection
        *
        Random_Id1
                *amount:100
                *name:John
        Random_Id2
                *amount:150
                *name:Matt
        Random_Id3
                *amount:65
                *name:Alice

我有一个Firestore集合,其中包含不同的文档。这些文件中包含数据(名称,年龄,金额等)。有没有办法我可以返回集合中的最高或最高金额?我在java(android)中实现此。 在上述结构的情况下,最大值为150 。 预先谢谢你

2 个答案:

答案 0 :(得分:4)

您必须使用通过orderBy()limit()的组合构造的查询,如下所示:

CollectionReference collectionRef = db.collection("collection");
Query query = collectionRef.orderBy("amount", Direction.DESCENDING).limit(1);

https://firebase.google.com/docs/firestore/query-data/querieshttps://firebase.google.com/docs/firestore/query-data/order-limit-data这里查看文档

答案 1 :(得分:0)

在Kotlin中,您可以这样操作:

db.collection("collection")
   .orderBy("amount", Direction.DESCENDING).limit(1)
   .get()
   .addOnSuccessListener { documents ->
           //your code, print the highest amount   
   }                
   .addOnFailureListener { exception ->
           Toast.makeText(this, exception.toString(), Toast.LENGTH_LONG).show()
           Log.i("YourActivity",exception.toString())
    }

然后,运行您的项目并触发上述对数据库的调用。您将看到带有Firebase异常消息的烤面包。转到您的Logcat,使用YourActivity类名对其进行过滤,然后您将看到一个指向Firebase的链接,以确认您正在创建的新索引。等待它的构建几分钟,然后启用它的状态,然后再次运行您的项目。