android - 根据消息获取用户数据
问题描述
我正在使用 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 查询用户节点?
解决方案
推荐阅读
- python - 如果两列具有相同的字符串或列为空,则从 python 中的 postgres 表中获取行
- http - Flutter 中的 API 访问问题
- javascript - 即使输入了错误的凭据 Passport.js 登录功能也不会产生任何错误并使用户通过身份验证
- bash - 如何发送 1kk post http 请求。最快的方法是什么?
- python - 有没有办法优化熊猫中连接表的创建?
- javascript - 无法更新 React Js 表单中的状态值
- jquery - 错误消息的顺序以反映 Jquery 验证中输入字段的顺序
- asp.net-core - 在 ASPNetBoilerplate 中支持具有 2 个复合键的实体的 OData
- xcode - 为播放设置 mp3 文件的增益(又名标准化)
- go - Golang 中的 bufWriter 记录在哪里?