Можно ли отфильтровать Firestore Recyclerview (без стороннего приложения)? - PullRequest
0 голосов
/ 19 октября 2019

На самом деле, я делаю 1-й запрос, который возвращает количество объектов.

Как мы могли бы с помощью стандартного recyclerView, я хотел бы динамически фильтровать эти объекты с помощью EditText после создания представления и динамически обновлять представление.

Например, если мой первый запросвозвращает и отображает 10 объектов, пользователь сможет искать один объект среди 10 объектов, сделав запрос с EditText. Вид будет отображать только этот объект.

Query query = collectionRef.whereArrayContains("customerNearMe", getCurrentUser().getUid());

private void sendToAdapter(Query query) {

        FirestoreRecyclerOptions<Restaurant> options = new FirestoreRecyclerOptions.Builder<Restaurant>()
                .setQuery(query, Restaurant.class)
                .build();

        adapter = new RestaurantAdapter(options);
        recyclerView.setHasFixedSize(true);

        recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
        recyclerView.setAdapter(adapter);

        DividerItemDecoration dividerItemDecoration = new DividerItemDecoration(recyclerView.getContext(), DividerItemDecoration.VERTICAL);
        recyclerView.addItemDecoration(new SimpleItemDecorator(getContext()));
        adapter.notifyDataSetChanged();

    }

    @Override
    public void onStart() {
        super.onStart();
        adapter.startListening();
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        adapter.stopListening();
    }

На самом деле, я знаю, как это сделать с простым RecyclerView


    private void filter(String text) {
        ArrayList<ExampleItem> filteredList = new ArrayList<>();

        for (ExampleItem item : mExampleList) {
            if (item.getText1().toLowerCase().contains(text.toLowerCase())) {
                filteredList.add(item);
            }
        }

        mAdapter.filterList(filteredList);
    }

, но я новичок в Firestore.

...