Моя база данных Firebase имеет следующие узлы:
Продукты -> Категория -> женское платье
Обратите внимание, что под узлом Категория есть разные дочерние узлы, кроме "женского платья" "(как футболки, свитера, ноутбуки и т. д. c.). Я использую приведенный ниже код, чтобы предоставить пользователям возможность поиска в узле категории:
protected void onStart() {
super.onStart();
DatabaseReference reference=FirebaseDatabase.getInstance().getReference().child("Products");
FirebaseRecyclerOptions<Products> options=new FirebaseRecyclerOptions.Builder<Products>()
.setQuery(reference.orderByChild("Category").startAt(searchInput).endAt(searchInput+"\uf8ff"),Products.class)
.build();
FirebaseRecyclerAdapter<Products, ProductViewHolder> adapter=new FirebaseRecyclerAdapter<Products, ProductViewHolder>(options) {
@Override
protected void onBindViewHolder(@NonNull ProductViewHolder holder, int position, @NonNull final Products model) {
holder.txtProductName.setText(model.getName());
holder.txtProductDescription.setText(model.getDescription());
holder.txtProductPrice.setText("Price: Rs. " + model.getPrice() + ".00");
Picasso.get().load(model.getImage()).into(holder.imageView);
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent( SearchProductsActivity.this,ProductDetailsActivity.class);
intent.putExtra("pid",model.getPID());
startActivity(intent);
}
});
}
@NonNull
@Override
public ProductViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view= LayoutInflater.from(parent.getContext()).inflate(R.layout.product_items_layout,parent,false);
ProductViewHolder holder=new ProductViewHolder(view);
return holder;
}
};
searchList.setAdapter(adapter);
adapter.startListening();
}
Приведенный выше код извлекает все данные, когда пользователь вводит поисковый запрос как "женские", то есть все товары категории " женское платье "извлекается, но если в качестве поискового запроса введено" платье ", то ничего не извлекается.
Что мне не хватает?
Спасибо