У меня есть ChatActivity
, и я могу успешно отправлять сообщения между двумя пользователями.Я хочу отсортировать сообщения по значению временной метки (как в обычном приложении чата).Я позвонил orderBy()
, но сообщения все еще не отсортированы.Это мой код в методе onCreate()
моей деятельности:
Query query = currentUserRef.orderBy("time", Query.Direction.ASCENDING);
FirestoreRecyclerOptions<Messages> options = new FirestoreRecyclerOptions.Builder<Messages>().setQuery(query, Messages.class).build();
mAdapter = new MessagesAdapter(options,messagesList);
mLinearLayout = new LinearLayoutManager(this);
mMessagesList.setHasFixedSize(true);
mMessagesList.setLayoutManager(mLinearLayout);
mMessagesList.setAdapter(mAdapter);
}
private void sendMessage() {
String message = txtMessage.getText().toString();
if (!TextUtils.isEmpty(message)) {
Map messageMap = new HashMap();
messageMap.put("messages", message);
messageMap.put("type", "text");
messageMap.put("time", FieldValue.serverTimestamp());
messageMap.put("from", mCurrentID);
chat_user_ref.add(messageMap).addOnSuccessListener(documentReference -> currentUserRef.add(messageMap).addOnSuccessListener(documentReference1 -> txtMessage.getText().clear()));
mAdapter.notifyDataSetChanged();
mMessagesList.scrollToPosition(messagesList.size());
}
Я попытался передать RecyclerView в качестве параметра моему адаптеру, а затем попытаться вызвать notifyDataSetChanged()
в onBindViewHolder()
, но я не могу 'сделать это.
Я хочу, чтобы сообщения сортировались на экране чата (от самого старого до самого нового).И я хочу, чтобы окно повторной отправки обновлялось при отправке нового сообщения.