Как интегрировать разветвленную структуру БД с firebase - PullRequest
0 голосов
/ 19 мая 2019

Я пытаюсь выяснить, как интегрировать структуру DB с разветвлением, , как показано здесь , в базе данных Firebase.

У меня есть приложение, похожее на Instagram. Кажется, для создания временной шкалы мне нужно будет сделать следующее:

timeline/UID/UIDOFPersonWhoIsFollowed:randomNum/post/|//data

В этом случае UID человека, которому следует пользователь, должен также включать какое-то случайное число, чтобы оно всегда отличалось.

Это правильно?

Кроме того: если у пользователя 1 миллион подписчиков, как я смогу публиковать сообщения у каждого из этих подписчиков? В настоящее время у меня есть только место, где я храню людей, за которыми следует один пользователь: означает ли это, что мне придется создавать узел подписчиков, который отслеживает whoFollows «я»?

со структурой подписчика, такой как:

WhoFollowsMeNode/UID/uid: true

Я должен был бы каждый раз, когда пользователь публикует сообщения, проходить по этому списку, где для каждого пользователя я добавляю сообщение в там временную шкалу ... Это кажется невозможным, и пока что то, что, по-видимому, они здесь делают .

1 Ответ

0 голосов
/ 19 мая 2019

Часто вам захочется отследить, кто следует за пользователем, а также кто следует за ним. нет единственного ответа, поскольку это зависит от варианта использования, запросов и т. д.

На самом деле в вопросе недостаточно информации, чтобы понять, что такое «временная шкала» или какие запросы будут выполняться к данным, поэтому сложно дать конкретный ответ.

Вот одна общая опция для структурирования Firebase, где пользователи могут знать друг о друге.

Как видите, нет необходимости в случайных ключах узлов для обработки следующего аспекта. Кроме того, это легко масштабируется, поскольку могут быть тысячи пользователей и тысячи подписчиков, а объем данных может быть крошечным, поскольку вы просто храните идентификаторы пользователей и «истинное» значение, которое в данном случае является просто заполнителем.

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

Эта структура позволит каждому пользователю знать, за кем он следует и кто следует за ним.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...