1

为简单起见,假设我有一个类似于以下内容的 Firebase 方案:

  • 用户列表
    • 用户 1
      • 年龄 - 22
      • 性别 - M
    • 用户 2
      • 年龄 - 26
      • 性别 - M
    • 用户 3
      • 年龄 - 20
      • 性别 - F

假设我想从该列表中获得所需年龄范围和所需性别的随机用户。现在我正在提取完整的用户列表,过滤掉不符合我偏好的用户,然后从客户端匹配的用户中随机获取一个用户。这对少数用户来说效果很好,但如果我有 10,000 个用户怎么办?

有什么方法可以在不下载所有用户的完整列表的情况下完成此操作,因为这非常占用带宽。使用关系数据库很容易只使用 where 子句,但由于我不能使用 Firebase,我假设我必须在客户端做所有事情,这意味着检索完整的数据列表。最小化带宽的正确方法是什么?

4

1 回答 1

2

一种解决方案(我认为目前唯一的解决方案)是在您的数据库中保留一个单独的列表,其中仅包含用户名(“User1”,“User2”,...)。然后要获得一个随机用户,检索用户名列表并从中获取一个随机项。然后从完整用户列表中检索对应的完整用户。

于 2015-04-26T21:02:16.540 回答