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