collection
*
Random_Id1
*amount:100
*name:John
Random_Id2
*amount:150
*name:Matt
Random_Id3
*amount:65
*name:Alice
我有一个Firestore集合,其中包含不同的文档。这些文件中包含数据(名称,年龄,金额等)。有没有办法我可以返回集合中的最高或最高金额?我在java(android)中实现此。 在上述结构的情况下,最大值为150 。 预先谢谢你
答案 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/queries和https://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的链接,以确认您正在创建的新索引。等待它的构建几分钟,然后启用它的状态,然后再次运行您的项目。