根据消息获取用户数据

时间:2019-06-24 14:56:57

标签: android firebase mvp

我正在使用MVP架构开发聊天应用程序,并且想要显示发送消息的用户的个人资料图片(头像),如常规聊天应用程序一样,但是我不知道如何访问“用户”节点根据邮件的发件人。我的数据库结构如下:

enter image description here

我检索这样的消息:

交互者:

@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);
}

我需要基于“发送者”的用户ID查询用户节点,但是使用MVP方法,我无法在适配器类中执行此操作。我在哪里以及如何使用“发件人”中的用户ID查询用户节点?

0 个答案:

没有答案