Показаны только контакты, у которых есть учетная запись, созданная в приложении из значения базы данных - PullRequest
1 голос
/ 17 января 2020

Здравствуйте, у меня есть проблема, которую я пытался решить долгое время и безуспешно.

Я создаю приложение в стиле 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) {

        }
    });
}

Фрагмент пользователя выглядит следующим образом: Снимок экрана

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...