Дублирующие узлы - PullRequest
       9

Дублирующие узлы

0 голосов
/ 24 июня 2019

В моем приложении чата у меня есть users и message.

Структура базы данных:

enter image description here

Каждое сообщение состоит из message и ИД пользователя отправителяназывается senderUid.Если бы я хотел отобразить сообщение и вместе с изображением отправителя (imageUri), то было бы наиболее эффективно запрашивать узел users, используя senderUid?Или я могу добавить imageUri под каждым сообщением, чтобы мне нужно было только запросить message узел?

Ответы [ 2 ]

1 голос
/ 25 июня 2019

Если бы я хотел отобразить сообщение и изображение отправителя (imageUri), то было бы наиболее эффективно запрашивать узел пользователей с использованием senderUid?

Если вы хотите отобразить сообщение отправителя вместе с его изображением, используя вашу фактическую структуру базы данных, вам нужно запросить его дважды. Во-первых, вам нужно выполнить запрос, чтобы получить uid из объекта сообщения, а во-вторых, вам нужно запросить узел users, основанный на uid, чтобы получить URL-адрес изображения. Это подразумевает вложенный запрос, но не будет проблемой в случае Firebase.

Или я могу добавить imageUri под каждым сообщением, чтобы мне нужно было только запросить узел сообщения?

Таким же образом вы добавили uid отправителя, вы также можете добавить URL-адрес изображения. В этом случае вы уменьшите количество выполняемых запросов, но увеличите размер объекта сообщения. Опять же, это не будет проблемой в случае Firebase. Поэтому я рекомендую вам воспользоваться этим решением.

Однако, если вы в какой-то момент подумаете о том, чтобы попытаться использовать Cloud Firestore , здесь вы можете найти руководство по созданию полного и функционального Firestore Chat App .

1 голос
/ 24 июня 2019

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

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