【问题标题】:Connect two random users from Database从数据库连接两个随机用户
【发布时间】:2018-11-25 11:40:06
【问题描述】:

我正在尝试创建一个应用,我需要从我的 Firebase 数据库中匹配两个随机用户。我遇到的问题是我不确定如何将数据库的每个用户连接到随机对: 据我所知,用户可能会按下一个按钮来表示他已经准备好,所以他的 UID 的孩子喜欢“搜索”从假变成真。通过接收 DataSnapshot,用户可以查看其他用户是否也在搜索。然后我想将两个用户的“搜索”状态都设置为 false,并创建一个新的 UniqueID 来连接他们。

但是我认为它被认为很短,并且会引起一些问题。谁能给我一个关于如何组织搜索过程的提示?

【问题讨论】:

  • 嘿@user9582784,如果我的回答帮助您解决了您的问题,那么请通过单击旁边的勾选标记 V 类型按钮将其标记为正确,然后点赞。这有助于这个问题的未来读者,我也会很感激。干杯! :)
  • 是的,我不会忘记它,我没有足够的时间花在上面,所以我还在检查一切是否适合我,然后我会立即将其标记为正确的! :)
  • 是不是有可能两个用户同时得到一个快照,并且可以随机选择同一个用户?我想这是一个相当低的危险,但有没有办法避免呢?
  • 在我在答案中告诉你的算法中,我们只遵循一件事,我们找到正在搜索的人,然后从我们拥有的id's 的数量中随机获得一个数字。在随机数中,有可能两个人可能会选择彼此,但这就是事实,我认为对此无能为力,随机也应该意味着,不在我们手中控制,就是这样。跨度>
  • 好的,听起来不错。那么您认为这种情况可以忽略不计吗?

标签: firebase firebase-realtime-database


【解决方案1】:

实际上使用像searching 这样的特殊节点并将其设置为truefalse 将是一个好主意。

您可以使用orderByChild()searching 节点设置为true 的所有用户进行排序,并获取其中任何用户的uid。

要使该过程随机化,您可以调用用户,将返回给您的 ID,然后随机选择一个带有基本随机数的 ID。

如果在调用用户后,您的数组中有 10 个用户 ID,您可能希望获取 0-9 之间的随机数,然后使用该用户 ID 调用 Firebase。

我不相信 Firebase 对此有任何内置代码。因此,这是在您的应用中实现此功能的最佳方法。

给出一个基本概念,您的数据库结构应该如下所示:

--rootNode
|
|
  -- uid1
| |
|  - searching
|  - other Fields
|
  -- uid2

  .
  .
  .

【讨论】:

  • 好的,到目前为止非常感谢!我会像这样尝试,让你知道它是否对我有用:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-03-06
  • 1970-01-01
  • 2013-10-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-04
相关资源
最近更新 更多