Как отфильтровать текст редактирования из базы данных Firebase? - PullRequest
1 голос
/ 08 марта 2019

Это код, из которого я получаю текст:

etSearchFriends = (EditText) findViewById(R.id.etSearchFriends);


        buttonSearch.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                searchText = etSearchFriends.getText().toString();
                filterLocation(searchText);
            }
        });

Вот фильтр, где код должен работать, но, к сожалению, это не так:

private void filterLocation(final String s) {
    final ArrayList<User> users = new ArrayList<>();
    Log.d("UserData1",s);

    fRef.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            for (DataSnapshot dataSnapshot1 : dataSnapshot.getChildren()) {
                fname = dataSnapshot1.child("fname").getValue(String.class);
            }
                for (User user1 : ListOfBranches.getUsers()) {
                    if (fname.toLowerCase().contains(s)) {
                        users.add(user1);
                        Log.d("UserData3", dataSnapshot.getValue(String.class));
                    }
                }
                friendsAdapter.filterLocation(users);


        }

Пока этосписок, где из базы данных извлекаются другие данные:

    userRef = FirebaseDatabase.getInstance().getReference().child("UserFiture");

        userRef.addChildEventListener(new ChildEventListener() {
            @Override
            public void onChildAdded(DataSnapshot dataSnapshot, String s) {
//                User user1 = dataSnapshot.getValue(User.class);
                User u = new User();
                String fname = dataSnapshot.child("fName").getValue(String.class);
                String lname = dataSnapshot.child("lName").getValue(String.class);
                String age = dataSnapshot.child("age").getValue(String.class);
                String gender = dataSnapshot.child("gender").getValue(String.class);

                u.setfName(fname);
                u.setlName(lname);
                u.setAge(age);
                u.setGender(gender);
                users.add(u);
                Log.e("dataSnapshot", String.valueOf(u));
            }

Я хочу получить все данные здесь и показать их, если текст поиска равен fname: enter image description here

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