Firebase Android - 如何随机获取一些项目[重复]

Posted

技术标签:

【中文标题】Firebase Android - 如何随机获取一些项目[重复]【英文标题】:Firebase Android - How to get randomly a number of items [duplicate] 【发布时间】:2017-08-14 08:24:37 【问题描述】:

我正在开发一个分享这些想法的 android 应用程序。我的应用程序使用 Firebase 来存储想法,当用户打开应用程序时,我想从 Firebase 中随机获取 N 个想法。 如何实现从 Firebase 中随机获取 N 个项目的功能?

【问题讨论】:

您的问题已解决。 ***.com/questions/28154966/… 您的问题已解决。 ***.com/questions/28154966/… 参见***.com/questions/40853157/firebase-random-query 或(适用于ios,但同样适用于Android)***.com/questions/40765613/… 【参考方案1】:

我认为没有任何选项可以从一个节点随机获取数据。但是您可以从 firebase 数据库中检索所有数据,然后以编程方式显示随机数据。

【讨论】:

我的数据真的很大,我不知道先获取所有数据是个好主意。 Anw,谢谢你的回答:) 你能分享你的数据库设计吗... Idea 项并不复杂,但项的数量很大。例如,如果我有 > 10.000 个项目,是否可以获取所有数据? 你可以对这些数据进行分类并将它们保存在多个节点中。然后当应用程序打开时,您随机选择类别并从中随机选择一些值......或者您可以使用您已知的 url 保存值。然后你可以点击特定的 url 来获取数据... pushid 创建一个随机值来保存数据你不能使用 pushid 来保存你的数据。你可以使用数组索引来保存你的数据并从你已知的 url 随机命中。【参考方案2】:

一种解决方案是为想法键创建复合键,本质上是一个字符串加数字的索引

ideas
  idea_0
    idea: "The Wheel"
  idea_1
    idea: "Internal Combustion Engine"
  idea_2
    idea: "Electricity"
  .
  .
  .
  idea_X
    idea: "Disco"

然后,在代码中,生成一个从 0 到 X 的随机数...然后将该随机数附加到字符串并仅从 Firebase 加载该节点。

因此,如果我们生成随机数 2,则密钥将是

idea_2

现在你有电了!确保使随机数生成器包含在内,以便获得从 0 到 X 的数字;你不会想省略“迪斯科”的想法吧?

例如,在一个循环中执行 3 次,您将有三个随机的想法。

【讨论】:

以上是关于Firebase Android - 如何随机获取一些项目[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何每次从 Firebase 数据库中获取随机 UId?

如何从父级及其子级的 Firebase 中获取随机数据 [重复]

如何从 Firebase 中的第二个生成的密钥获取数据?

从 Firebase 获取随机用户

如何从android上的firebase获取用户uid?

如何从android中的firebase获取对象?