Бесплатный метод при обновлении и сортировке списка друзей в Firestore - PullRequest
0 голосов
/ 29 мая 2019

Я использовал денормализацию базы данных в Firestore. Пользователь может легко сортировать своих друзей по его имени / буквам без проблем. Более того, Пользователь может видеть «друзей друзей», если только друг не отключил настройку видимости.

User(collection)
->User ID(Doc)   -> Name: Name0
                 -> visibility: true        
                 -> Friends (sub-collection)
                     ->Friend1 ID (Doc) -> Name: friend1Name
                                        -> visibility: true

                     ->Friend2 ID (Doc) -> Name: friend2Name
                                        -> visibility: true

                     ->Friend3 ID (Doc) -> Name: friend3Name
                                        -> visibility: false

                     ->...

->User ID(Doc)  -> ...  

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

Во-вторых, когда Пользователь изменил свои настройки видимости, необходимо обновить видимость денормализованных данных, где он зарегистрирован в подколлекциях Друга. Поэтому, если вы запускаете его из «Облачных функций», количество вызовов документов напрямую зависит от количества друзей Пользователя. Для обоих выпусков стоимость открыта.

Я буду рад, если в Firestore найдется альтернативная бесплатная структура для решения этих проблем.

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