Здравствуйте, у меня есть проблема, которую я пытался решить долгое время и безуспешно.
Я создаю приложение в стиле WhatsApp. И поэтому я хотел бы, чтобы он отображался в моем Фрагменте пользователей, контакты сохраняются в списке контактов мобильного телефона пользователя. Для этого я создал ссылку в базе данных ( phoneNumberWithoutCountryCode ), которая будет получать номер мобильного телефона каждого пользователя, а затем сравнивать его со списком контактов.
Код, который я сделал доступным, показывает все зарегистрированные пользователи, и это то, что я хотел изменить, как я уже говорил.
Из-за отсутствия достаточных знаний на данный момент, я застрял на этом.
Спасибо за вашу помощь прямо сейчас.
Моя база данных Firebase:
- Пользователи - это строка, в которой хранится вся личная информация каждого пользователя.
- Тогда появляется строка, представляющая идентификатор пользователя каждого пользователя.
- Затем идет информация о пользователе (есть более очевидно, но я не вводил ее, потому что не думаю, что она важна за пределами этого ).
- Имя - это имя пользователя, которое должно отображаться во фрагменте пользователей. Это отличается от имени контакта в списке контактов.
- phoneNumberWithoutCountryCode - это номер мобильного телефона, отличный от кода страны, полученный из EditText при первом входе в систему с помощью номера мобильного телефона.
- uid - это идентификатор пользователя.
{
"Users" : {
"Bakpv8gs6keE95nFrRz4jnXOqka2" : {
"name" : "User 1",
"phoneNumberWithoutCountryCode" : "123789456",
"uid" : "Bakpv8gs6keE95nFrRz4jnXOqka2"
},
"ET2PD26FpweYHIdPYtdlF1KDQEZ2" : {
"name" : "User 2",
"phoneNumberWithoutCountryCode" : "987654321",
"uid" : "ET2PD26FpweYHIdPYtdlF1KDQEZ2"
},
"JGqx9sZ6nZOAmaQmpruuxowvsps1" : {
"name" : "User 3",
"phoneNumberWithoutCountryCode" : "123456789",
"uid" : "JGqx9sZ6nZOAmaQmpruuxowvsps1"
}
}
}
Это код из моего фрагмента пользователей, который необходимо изменить:
private void getAllUsers() {
//get current user
final FirebaseUser fUser = FirebaseAuth.getInstance().getCurrentUser();
//get path of database named ""Users" containing users info
DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("Users");
//get all data from path
ref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
userList.clear();
for (DataSnapshot ds:dataSnapshot.getChildren()){
ModelUser modelUser = ds.getValue(ModelUser.class);
//get all users except currently signed in user
if (!modelUser.getUid().equals(fUser.getUid())){
userList.add(modelUser);
}
//adapter
adapterUsers = new AdapterUsers(getActivity(), userList);
//set adapter to recycler view
recyclerView.setAdapter(adapterUsers);
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
Фрагмент пользователя выглядит следующим образом: Снимок экрана