Это очень просто, когда вы добавляете данные пользователей в firebase, добавляйте их под своим собственным идентификатором электронной почты.например:
Создайте класс модели "Пользователь" с полями, которые вы заполнили.
mDatabase = FirebaseDatabase.getInstance().getReference("Users");
User user= new User("UserName", "User@email.com");
mDatabase.child("User@email.com").setValue(user);
Таким образом, в firebase это будет выглядеть так:
Users
MyUser@email.com
Email: "User@email.com"
Fullname: "UserName"
Теперь, если другие пользователи должны искать пользователей, указав идентификатор электронной почты, просто
DatabaseReference ref= mDatabase.child("User@email.com");
ref.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
User user= dataSnapshot.getValue(User.class);
// and user.getName() for getting the name
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
Таким образом, вы можете легко искать пользователей по их идентификаторам электронной почты.
Теперь для подключения пользователей к чату необходимо создать общего дочернего элемента, к которому они оба могут получить доступ, например создать дочернего элемента с ключом."user1email-user2email".затем прослушайте дочерние события для этого дочернего элемента как в пользователях, так и все сообщения, которые поступают в этот дочерний элемент, будут передаваться друг другу.