Отфильтруйте запрос и обновите представление переработчика, используя FireBase в Android

@Override
protected void onStart() {
    super.onStart();

    mAuth.addAuthStateListener(mAuthListener);

    FirebaseRecyclerAdapter<Product, ProductViewHolder> firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<Product, ProductViewHolder>(

            Product.class,
            R.layout.product_row,
            ProductViewHolder.class,
            mDatabase

    ) {
        @Override
        protected void populateViewHolder(ProductViewHolder viewHolder, Product model, int position) {

            Log.d(TAG, "loading view " + position);
            final String product_id = getRef(position).getKey();
            viewHolder.setTitle(model.getName());
            viewHolder.setDesc(model.getDesc());
            viewHolder.setImage(getApplicationContext(), model.getImage());
            viewHolder.setUsername(model.getUsername());

            viewHolder.mView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent productDetailIntent = new Intent();
                    productDetailIntent.setClass(MainActivity.this, ProductDetailActivity.class);
                    productDetailIntent.putExtra("product_id", product_id);
                    Log.d(TAG + " product_id", product_id);
                    startActivity(productDetailIntent);
                }
            });

            Log.d(TAG, "finish loading view");
        }
    };

    mProductList.setAdapter(firebaseRecyclerAdapter);
}

Выше приведен код, который я использую для получения данных из базы данных Firebase в реальном времени. Как я могу изменить запрос (mDatabase в моем коде) и обновить представление переработчика для фильтрации данных? Как установить новый адаптер? Пожалуйста, дайте мне немного помощи. Спасибо.

2 ответа

Попробуй это:

FirebaseRecyclerAdapter<Product, ProductViewHolder> firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<Product, ProductViewHolder>(

        Product.class,
        R.layout.product_row,
        ProductViewHolder.class,
        mDatabase.orderByChild("KeyName").equalTo("Value") //add this line 
)
 mProductList.setAdapter(firebaseRecyclerAdapter);
  firebaseRecyclerAdapter.notifyDataSetChanged();  // also add this line

Установить запрос в вашей базе данных...

FirebaseRecyclerAdapter<Product, ProductViewHolder> firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<Product, ProductViewHolder>(

            Product.class,
            R.layout.product_row,
            ProductViewHolder.class,
            mDatabase.orderByChild("KeyName").equalTo("Value")

    )