Получение пользовательских данных на основе сообщения - PullRequest
0 голосов
/ 24 июня 2019

Я разрабатываю приложение чата с использованием MVP и хочу отобразить изображение профиля (аватар) пользователя, отправляющего сообщение, как обычные приложения чата, но я не знаю, как получить доступ к узлу «пользователи»на основе отправителя сообщения.Моя структура базы данных выглядит следующим образом:

enter image description here

Я получаю сообщения, подобные этому:

Interactor:

@Override
public void getChatRoomMessages(String uid) {
    mMessageReference.child(uid).addChildEventListener(new ChildEventListener() {
        @Override
        public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
            mMessage = dataSnapshot.getValue(Message.class);
            mMessagePresenter.showMessages(mMessage);
        }

        @Override
        public void onChildChanged(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {

        }
       ...
}

Мой класс адаптера:

public class MessageAdapter extends RecyclerView.Adapter<MessageAdapter.MessageViewHolder> {

private List<Message> mMessages = new ArrayList<>();

@Override
public void onBindViewHolder(@NonNull MessageAdapter.MessageViewHolder holder, int position) {

    //set avatar of user
    Message msg = mMessages.get(position);
    int userid = msg.getSender();
    //use userid to query user node 

}

public void addMessages(Message message) {
    mMessages.add(message);
    notifyItemChanged(mMessages.size() - 1);
}

Мне нужно запросить пользовательский узел на основе идентификатора пользователя «отправителя», но с подходом MVP я не могу сделать это в классе адаптера.Где и как я могу запросить пользовательский узел, используя идентификатор пользователя из «отправителя»?

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