ISO我在我的应用程序中有群聊。我有“房间”和按钮加入“房间”,当用户单击加入按钮时,所有旧消息都会出现在屏幕上,但我只想显示新消息,我正在使用 firebase 列表适配器进行显示......一切正常,但只是不要不知道如何显示空列表和只显示新消息,ty。
btnJoin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DatabaseReference db = FirebaseDatabase.getInstance().getReference("EventsUsers").child(uniqEventID);
db.child(user.getUid()).setValue("");
}
});
btnSend.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DatabaseReference db = FirebaseDatabase.getInstance().getReference("EventsUsers").child(uniqEventID).child("Messages").push();
db.setValue(new ChatMessage(ePlain.getText().toString(),user.getDisplayName()));
ePlain.setText("");
ePlain.requestFocus();
}
});
private void displayChat() {
btnSend.setVisibility(View.VISIBLE);
eventChat.setVisibility(View.VISIBLE);
FirebaseListAdapter<ChatMessage> adapter = new FirebaseListAdapter<ChatMessage>(EventDetails.this,ChatMessage.class,R.layout.one_chat_list,FirebaseDatabase.getInstance().getReference("EventsUsers").child(uniqEventID).child("Messages")) {
@Override
protected void populateView(View v, ChatMessage model, int position) {
TextView messageTextm,messageUser,messageTime;
messageTextm = (TextView) v.findViewById(R.id.chatMessage);
messageUser = (TextView)v.findViewById(R.id.chatUserName);
messageTime = (TextView)v.findViewById(R.id.message_time);
messageTextm.setText(model.getMessageText());
messageUser.setText(model.getMessageUser());
messageTime.setText(DateFormat.format("dd-MM-yyyy (HH:mm)", model.getMessageTime()));
}
};
eventChat.setAdapter(adapter);
}
DatabaseReference check = FirebaseDatabase.getInstance().getReference("EventsUsers").child(uniqEventID);
check.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if(dataSnapshot.hasChild(user.getUid())){
displayChat();
}
}
因此,当用户单击加入按钮时,列表视图中的消息会在他加入之前显示所有旧消息......并且很抱歉没有上传任何代码我是新来的,告诉我你是否需要我的代码的其他内容这是我的数据库结构https:/ /ibb.co/d47D9v