Как записать одни и те же пользовательские данные (денормализовать) в несколько подколлекций в Firestore / Flutter - PullRequest
0 голосов
/ 03 апреля 2019

Допустим, у меня есть корневая коллекция под названием «Users», корневая коллекция под названием «Posts» и еще одна под названием «Follows».В коллекции «Пользователи» есть Документ (пользователи), и каждый содержит подколлекцию «Лента», а в ленте есть Документы «пользователи, следующие за публикациями».В коллекции «Записи» есть список документов, каждый из которых включает в себя несколько строк.А в коллекции «Follows» есть список Document, каждая из которых содержит строки «Follower-Id» и «Follow-Id».

Теперь я хочу написать документ данных в «Записи»"Соберите и продублируйте один и тот же документ (данные) во вложенной коллекции" Фидов "следующих за мной.

Вот структура базы данных.

--- пользователи (коллекция)

    |

    --- uid (documents)

         |

         --- name: "User Name"

         --- profile_pic: "pic_url"

         --- Feed (sub-collection)

                |

                --- Following_user_postId (documents)

                --- Following_user_postId (documents)

                --- Following_user_postId (documents)

--- сообщений (сборник)

     |

     --- uid (documents)

          |

          --- userId "post Users Id"

          --- image_url "Image url"

          --- Time_stamp "Time Stamp UTC"

--- Подписок (сборник)

     |

     --- uid (document)

          |

          --- FollowerId: "Follower Uid"

          --- FollowingId: "Following Uid"

Что я ищу здесь, так это то, чтолучшие способы извлечения данных с наименьшим количеством операций записи / чтения с сервера (я не хочу, чтобы это было дорого), и каков наилучший вариант для обработки на стороне клиента или cloud_functions.И последнее: есть ли разница в чтениях / записях в зависимости от сценария заполнения канала: например, просто запуск и необходимость заполнения канала против уже запущенного и просто необходимость заполнения новых сообщений по мере их поступления.Первоначальное заполнение требует меньше чтений, если вы можете просто извлечь его из подколлекции фида пользователя или, запросив следующую коллекцию, затем извлечь все сообщения пользователей, на которых они подписаны?Это все на данный момент Спасибо.

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