Я изучаю FirebaseUI для создания списка чата, который показывает список всех чатов для пользователя вместе с последним сообщением, именем и фотографией участника. Моя модель данных выглядит примерно так:
users:
userid1:
name: MyName
profilePicUrl: <here>
userid2:
name: HisName
profilePicUrl: <here>
userchats:
userid1:
chatgrp1
chatgrp2
chatgroups:
chatgrp1:
participants: <userId2>
lastMessage: "This..."
Я могу использовать индексированный запрос, чтобы получить список групп чата для пользователя и затем содержимое для каждой. Но мне также нужно имя и фото профиля для участников. Я не могу понять, как это сделать с помощью firebaseUI. Возможно ли это с помощью FirebaseUI?
В настоящее время я делаю что-то подобное:
Query keyQuery = FirebaseDatabase.getInstance()
.getReference()
.child("userchats/userid1");
DatabaseReference dataRef = FirebaseDatabase.getInstance()
.getReference("chatgroups");
FirebaseRecyclerOptions<FirebaseConversationRecord> options = new FirebaseRecyclerOptions.Builder<FirebaseConversationRecord>()
.setIndexedQuery(keyQuery, dataRef, FirebaseConversationRecord.class)
.build();
Я не могу отменить нормализацию пользовательских данных в этом случае, потому что пользователь может обновить свое имя или изображение, и это должно отразиться на всех его чатах. Подскажите пожалуйста как мне этого добиться? Я также открыт для изменений схемы.