如何将扇出数据库结构与Firebase集成

时间:2019-05-18 23:26:30

标签: ios swift database firebase

我正在尝试弄清如何在Firebase中集成扇出数据库结构as seen here

我有一个类似于instagram的应用。为了创建一种timeLine,看来我将必须执行以下操作:

method.__name__ = name

在这种情况下,用户关注者的UID还必须包含某种随机数,以使其始终与众不同。

这正确吗?

此外:如果用户有100万关注者,我将如何向这些关注者中的每一个发布?目前,我只有一个地方可以存储一个用户关注的人:这是否意味着我将必须创建一个Followers节点来跟踪whoFollows“ me”?

具有以下关注者结构:

setattr

每次用户发布时,我都必须遍历此列表,在该列表中,我将为每个用户将发布内容添加到那里timeLine ...这似乎是不可挽回的,yet that what it seems they are doing here

1 个答案:

答案 0 :(得分:0)

通常,您将需要跟踪用户正在关注的用户以及谁正在关注该用户。没有唯一答案,因为这取决于用例,查询等。

问题中实际上没有足够的信息来了解什么是“时间表”或将对数据执行哪种查询,因此很难给出具体的答案。

这里是构建Firebase的一个通用选项,用户可以互相了解。

如您所见,不需要随机节点密钥来处理以下方面。而且,它具有高度的可伸缩性,因为可能只有成千上万的用户和成千上万的关注者,而数据量却很小,因为您只存储用户ID和“真”值,在这种情况下,它只是一个占位符。

users
   uid_0
      name: "Henry"
      followed_by:
         uid_1: true //followed by Leroy
         uid_2: true //followed by Amber
      following:
         uid_3: true //following Ralph
   uid_1
      name: "Leroy"
      followed_by:
         uid_2: true //followed by Amber
         uid_3: true //followed by Ralph
      following:
         uid_0: true //following Henry
   uid_2
      name: "Amber"
      followed_by:
         uid_3: true //followed by Ralph
      following:
         uid_0: true //following Henry
         uid_1: true //following Leroy
   uid_3
      name: "Ralph"
      followed_by:
         uid_0: true //followed by Henry
      following:
         uid_1: true //following Leroy
         uid_2: true //following Amber

此结构将允许每个用户知道他们正在关注谁以及正在关注谁。