我正在使用MVP架构开发聊天应用程序,并且想要显示发送消息的用户的个人资料图片(头像),如常规聊天应用程序一样,但是我不知道如何访问“用户”节点根据邮件的发件人。我的数据库结构如下:
我检索这样的消息:
交互者:
@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查询用户节点?