Как сделать что бы в сообщении выводило логин пользователя из Firebase
Не мог понять как мне вывести имя пользователя для чата в самом диалоге. Сейчас у меня выводит просто его сообщение, я хочу чтобы под каждым его сообщением была надпись его логина и вот тут что-то я знатно туплю, что не пишу - все не так. И, честно говоря, я уже просто запутался. Помогите, пожалуйста, как мне сделать, чтобы в сообщении выводило еще логин пользователя? Вот код моего главного класса:
public class ChatOnline extends AppCompatActivity {
private FirebaseDatabase database;
private DatabaseReference myRef;
private DatabaseReference room;
private FirebaseUser currentUser;
private FirebaseAuth mAuth;
private Toolbar toolbar;
private RecyclerView recyclerMessage;
private Button sendBtn;
private EditText inputMessage;
private String messageUser;
private static int MAX_LENGTH_MESSAGE = 20;
private Boolean searchInterlocutor = false;
public ArrayList<String> messages;
private ChatAdapter chatAdapter;
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
getMenuInflater().inflate(R.menu.chat_online_menu, menu);
return true;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_chat_online);
database = FirebaseDatabase.getInstance();
myRef = database.getInstance().getReference("Messages");
currentUser = FirebaseAuth.getInstance().getCurrentUser();
messages = new ArrayList<>();
toolbar = (Toolbar) findViewById(R.id.toolbarChat);
setSupportActionBar(toolbar);
recyclerMessage = (RecyclerView) findViewById(R.id.recyclerMessage);
recyclerMessage.setLayoutManager(new LinearLayoutManager(ChatOnline.this));
chatAdapter = new ChatAdapter(this,messages);
recyclerMessage.setAdapter(chatAdapter);
inputMessage = (EditText) findViewById(R.id.inputMessage);
sendBtn = (Button) findViewById(R.id.btnSend);
sendBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
messageUser = inputMessage.getText().toString();
if(messageUser.equals("")){
Toast.makeText(ChatOnline.this, "Введите ваше сообщение",Toast.LENGTH_SHORT).show();
return;
}
if(messageUser.length()>= MAX_LENGTH_MESSAGE){
Toast.makeText(ChatOnline.this, "Максимальная длина сообщения 200 символов",Toast.LENGTH_SHORT).show();
return ;
}
myRef.push().setValue(messageUser);
/* myRef.push().setValue(new ChatModel(
inputMessage.getText().toString()
)); */
inputMessage.setText("");
}
});
myRef.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(@NonNull DataSnapshot snapshot, @Nullable String previousChildName) {
String msg = snapshot.getValue().toString();
messages.add(msg);
chatAdapter.notifyDataSetChanged();
recyclerMessage.smoothScrollToPosition(messages.size());
// String loginUser = snapshot.child("login").getValue().toString();
}
@Override
public void onChildChanged(@NonNull DataSnapshot snapshot, @Nullable String previousChildName) {
}
@Override
public void onChildRemoved(@NonNull DataSnapshot snapshot) {
}
@Override
public void onChildMoved(@NonNull DataSnapshot snapshot, @Nullable String previousChildName) {
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
}
});
}
А вот код моего адаптера:
public class ChatAdapter extends RecyclerView.Adapter<ViewHolderMesssages> {
public Context mContext;
public ArrayList<String> messages;
public LayoutInflater inflater;
public TextView loginChat;
public FirebaseDatabase database;
public DatabaseReference rootReference;
public String currentUserID;
private FirebaseAuth mAuth;
private FirebaseUser currentUser;
public ChatAdapter(Context context, ArrayList<String> messages) {
this.messages = messages;
this.inflater = LayoutInflater.from(context);
}
@NonNull
@Override
public ViewHolderMesssages onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = inflater.inflate(R.layout.item_messsage,parent,false);
return new ViewHolderMesssages(view);
}
@Override
public void onBindViewHolder(@NonNull ViewHolderMesssages holder, int position) {
String msg = messages.get(position);
holder.message.setText(msg);
// holder.loginChat.setText();
}
@Override
public int getItemCount() {
return messages.size();
}
}