-1

我想做一个像 Tinder 这样的社交应用。我将使用 firebase Auth 和 firestore。

我的匹配机制是:

  1. 每个用户数据都将保存在单独的 Firestore 文档中。
  2. 在用户数据中,会保存“like”和“dontLike”字段,这两种类型都是数组。
  3. 每个数组都会在其中保存用户 ID。
  4. 当用户 A 点赞用户 B 时,我的服务器将获取用户 B 的数据。
  5. 检查用户 A 的 ID 是否在用户 B 的类似数组中?如果为真,那么 A 和 B 将成为朋友。

问题:

我预测用户何时点击更多喜欢或不喜欢。firestore 中的like 数组和 dontLike 数组会越来越大。这可能会导致firestore的费用越来越大。

我想要的理想结果:

  1. 防止firestore中like数组和dontLike数组越来越大的方法。
  2. 或者任何更聪明的方式来匹配 A 和 B 用户。
4

1 回答 1

0

看起来你想得太远了,我不认为这是一个需要担心的现实问题。花更多时间实现新功能。无服务器方法的主要优点之一是,在达到真正大规模之前,您不必担心性能或成本。

话虽如此,我会考虑删除 dontLike 数组,因为您可能无论如何都不需要它。如果您想跟踪喜欢或不喜欢的数量,只需将计数器作为 int 保存在文档中。但是,如果您能想到这些数据的合法用例,请保留它。此外,您可以使用哈希映射来代替数组。这是因为为了找到匹配项,您可能需要遍历整个数组。但是,当它真正重要时,您很可能不会达到规模,因此将其保留为数组就可以了。

于 2021-10-14T21:49:50.063 回答