Если бы я хотел отобразить сообщение и изображение отправителя (imageUri), то было бы наиболее эффективно запрашивать узел пользователей с использованием senderUid?
Если вы хотите отобразить сообщение отправителя вместе с его изображением, используя вашу фактическую структуру базы данных, вам нужно запросить его дважды. Во-первых, вам нужно выполнить запрос, чтобы получить uid из объекта сообщения, а во-вторых, вам нужно запросить узел users
, основанный на uid
, чтобы получить URL-адрес изображения. Это подразумевает вложенный запрос, но не будет проблемой в случае Firebase.
Или я могу добавить imageUri под каждым сообщением, чтобы мне нужно было только запросить узел сообщения?
Таким же образом вы добавили uid
отправителя, вы также можете добавить URL-адрес изображения. В этом случае вы уменьшите количество выполняемых запросов, но увеличите размер объекта сообщения. Опять же, это не будет проблемой в случае Firebase. Поэтому я рекомендую вам воспользоваться этим решением.
Однако, если вы в какой-то момент подумаете о том, чтобы попытаться использовать Cloud Firestore , здесь вы можете найти руководство по созданию полного и функционального Firestore Chat App .