【问题标题】:How to display only 15 random items from collection Cloud Firestore in Kotlin?如何在 Kotlin 中仅显示 Cloud Firestore 集合中的 15 个随机项目?
【发布时间】:2019-12-27 13:41:35
【问题描述】:

我收藏了超过 1000 件商品。由于成本高,我无法显示所有这些。我想要的是在 RecyclerView 中只显示 15 个,但每次都是随机的。我正在使用 FirestoreRecyclerAdapter,但我找不到任何方法来做到这一点。这可能吗?如果是,如何?任何帮助将不胜感激。

【问题讨论】:

  • 要检索此类数据,您需要按日期或任何其他字段对它们进行排序。就像我在Question 中尝试过的一样。
  • 请发布您的数据库截图或布局。
  • @Ashish 为什么我需要随机订购时要订购?我不明白这个答案对我有什么帮助。我有一个项目集合。每个项目都是一个包含两个详细信息的文档,id 和 name。无论如何,谢谢。
  • @loana 如果您在 Firebase Firestore 控制台中输入。请检查内部集合,您可以仅使用字段对它们进行排序。因此它将帮助您正确检索数据。
  • @Ashish 我现在真的很困惑。为什么要检查控制台?我需要在代码中获取那些随机项。我使用 FirebaseUi 中的 FirestoreRecyclerAdapter。

标签: android firebase kotlin google-cloud-firestore firebaseui


【解决方案1】:

FirebaseUI FirestoreRecyclerAdapter 没有内置任何内容来显示随机选择的项目。

我能想到的最接近的是:

  1. 在创建每个文档时为其添加一个随机整数
  2. 在需要显示回收站视图时生成一个随机整数
  3. 使用查询在回收站视图中显示最接近随机值的文档。类似citiesRef.whereGreaterThan("randomField", randomValue).limit(15)

这是基于 Dan 在此处的回答:Firestore: How to get random documents in a collection,结合了他的“随机整数版本”和“不断更新”部分。

如果您不喜欢这种方法,则必须构建自己的适配器。在这种情况下,您仍然需要 Dan 的链接答案中的一些方法来选择随机文档。

【讨论】:

  • 太棒了,谢谢弗兰克。你的解决方案解决了我的问题,我没问题。
猜你喜欢
  • 2021-09-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-29
  • 2020-07-11
  • 2021-09-26
  • 1970-01-01
  • 2020-10-26
相关资源
最近更新 更多