Я занимаюсь разработкой приложения Android Messenger.Для этого пользователи регистрируются с номером телефона, который хранится в База данных Firebase Realtime .
Чтобы начать переписываться с кем-либо, пользователь должен иметь в своих контактах других зарегистрированных пользователей в БД.
Для этого у меня есть метод получения контактов с телефона пользователя и зарегистрированных пользователей в БД.
private List<String> getContactsFromFirebase(final MyCallback myCallback){
FirebaseDatabase.getInstance().getReference().child("Users")
.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
Users user = snapshot.getValue(Users.class);
assert user != null;
String contact_found = user.getPhone_number();
mContactsFromFirebase.add(contact_found);
}
myCallback.onCallback(mContactsFromFirebase);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
return mContactsFromFirebase;
}
И сравнение пользователей, найденных в БД, с контактами пользователя
private List<String> findSignedUpContacts(Map<String, String> contactsStored, List<String> firebaseNumbers) {
List<String> values = new ArrayList<>();
for (String firebaseNumberKey : firebaseNumbers) {
values.add(contactsStored.get(firebaseNumberKey));
}
return values;
}
Теперь я хочу получить из БД Firebase только информацию о числах, сохраненных в списке, созданном выше (числа, совпадающие между БД и контактами), и отобразить результат в FirebaseRecyclerAdapter .
Как я могу это сделать?
Вот моя структура БД.
Users
5AWIQqYkdoZwFBqM0YrvZiqBj633
image: "https://firebasestorage.googleapis.com/v0/b/cha..."
name: "Plasita"
phone_number: "+50940404200"
status: "Coding is my life.."
thumbnail: "Default"