我正在尝试创建类似于Instagram或Facebook的一对一聊天应用程序。用户可以成功发送消息,并且可以成功检索该消息并将其填充到回收视图中。问题如下,假设我以Bob的身份登录,我想向John发送消息,我键入消息并发送,但是该消息仅针对Bob出现,John没有收到我的消息。我将如何解决这个问题?任何帮助将不胜感激。
**Database**
Message
8Ux6ahOko6SVskMXUMbnF7sFo8r2 (receiver id)
qnrE4PTKbNdKNs33cKtx1qLEvnS2 (sender id)
-Lp-BEGLeKAij6nqyiUQ (random messag)
public void onBindViewHolder(@NonNull MessageViewHolder viewHolder, int i) {
// Glide.with(this.context).asBitmap().load(userData.get(i).getProfilepic()).into(viewHolder.profileImageView);
// viewHolder.name.setText(userData.get(i).getName());
// viewHolder.postTextView.setText(userData.get(i).getDescription());
//logged in user will be the sender of the message
String senderId = mAuth.getCurrentUser().getUid();
Message message= userMessagesList.get(i);
String fromUser = message.getSender();
Log.i("senderId", senderId.toString());
Log.i("fromuser", fromUser);
String fromUserId = message.getSender();
if(fromUserId.equals(senderId)){
viewHolder.senderTextView.setBackgroundResource(R.drawable.sender_messages_layout);
viewHolder.senderTextView.setTextColor(Color.BLACK);
viewHolder.senderTextView.setText(message.getMessage());
}else{
viewHolder.senderTextView.setVisibility(View.INVISIBLE);
viewHolder.receiverTextView.setVisibility(View.VISIBLE);
viewHolder.receiverTextView.setBackgroundResource(R.drawable.receiver_messages_layout);
viewHolder.receiverTextView.setTextColor(Color.BLACK);
viewHolder.receiverTextView.setText(message.getMessage());
}
}
**Loads data into recycle view**
//populate messagerecycle view
public void populateMessageRecycleView() {
String messageSender = currentFirebaseUser.getUid();
String messeaageReceiver = id;
firebaseDatabase.child("Message").child(messeaageReceiver).child(messageSender).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
//cleared message list to prevent duplication of data...
messageList.clear();
for (DataSnapshot data : dataSnapshot.getChildren()) {
if (data.exists()) {
messages = data.getValue(Message.class);
messageList.add(messages);
}
}
messageAdapter = new MessageAdapter(MessageActivity.this, messageList);
messagesRecycleView.setAdapter(messageAdapter);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}