В настоящее время я создаю своего рода приложение для социальных сетей, и, как и любое приложение для социальных сетей, очень важно отображать какую-то информацию от друзей.
Я пробовал различные способы показывать пользователям сообщения, опубликованные их друзьями, но это может быть медленным, и я сомневаюсь, что это самый эффективный способ.
Сначала я структурировал свою базу данных следующим образом:
пользователи -> (uid) -> друзья (массив uid) сообщения (массив идентификаторов сообщений) другая информация ...
сообщений -> (идентификатор сообщения) -> image_url другая информация ...
При такой настройке я: 1. Я взял текущий uid вошедшего в систему пользователя и получил документ, который принадлежит этому пользователю, в разделе «пользователи».
Затем я получил список друзей пользователей в виде массива и просмотрел их.
Затем для каждого uid я запросил «пользователей» еще раз и нашел документ, принадлежащий этому пользователю.
Затем я взял первый "идентификатор сообщения" в их массиве "сообщений", если он был
Я взял идентификатор поста, нашел соответствующий пост в коллекции «постов» и скачал его.
Повторяйте шаги 3–5 для каждого идентификатора пользователя, пока не закончится публикация сообщений или пока я не загрузу 10 из них.
Это был мой первый подход, однако с ним есть несколько проблем, которые я могу определить, и, скорее всего, еще несколько, о которых я еще не подумал.
На шагах 2 и 4. На этих двух шагах я загружаю весь массив из-за того, что firestore не позволит вам загрузить определенный индекс в массиве. Это замедляет процесс, изображение, если есть где
Допустим, пользователь прокручивает страницу вниз, чтобы обновить новые сообщения, тогда было бы трудно загрузить больше сообщений, потому что даже если я начну скачивать с того места, откуда я ушел, за это время может быть добавлено еще одно сообщение, что выбрасывает всю систему.
Я также экспериментирую с просто прикрепленными к каждому пользователю коллекционными сообщениями с почтовыми документами.
Есть другие идеи?