so i write a code for searching some range of data in my realtime firebase and when i did that, the data that shown up its not only in range, but all data that i have in firebase is out to my cardview(fragment)
this is my main code that work for searching data
public class SearchListView extends AppCompatActivity {
private RecyclerView recView;
MyAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate (savedInstanceState);
setContentView (R.layout.activity_search_list_view);
String tanggalawal = getIntent ( ).getStringExtra ("tanggalawal");
String tanggalakhir = getIntent ( ).getStringExtra ("tanggalakhir");
DatabaseReference db = FirebaseDatabase.getInstance().getReference();
DatabaseReference pendingRef = db.child("Users").child("Pending");
Query queryByKey = pendingRef.orderByKey()
.startAt("*" + tanggalawal)
.endAt("*"+ tanggalakhir + "\uf8ff");
recView = (RecyclerView)findViewById (R.id.recview);
recView.setLayoutManager (new LinearLayoutManager (this));
FirebaseRecyclerOptions<Model> options =
new FirebaseRecyclerOptions.Builder<Model>()
.setQuery(queryByKey, Model.class)
.build();
adapter = new MyAdapter (options);
recView.setAdapter (adapter);
}
@Override
protected void onStart() {
super.onStart();
adapter.startListening();
}
@Override
protected void onStop() {
super.onStop();
adapter.stopListening();
}
}
and my firebase look like this
and this is my adapter code
public class MyAdapter extends FirebaseRecyclerAdapter <Model,MyAdapter.myViewHolder>{
public MyAdapter(@NonNull FirebaseRecyclerOptions<Model> options) {
super (options);
}
@Override
protected void onBindViewHolder(@NonNull myViewHolder myViewHolder, int i, @NonNull Model model) {
myViewHolder.currentDate.setText (model.getCurrentDate ());
myViewHolder.fullName.setText (model.getFullName ());
myViewHolder.currentDateandTime.setText (model.getCurrentDateandTime ());
}
@NonNull
@Override
public myViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from (parent.getContext ()).inflate (R.layout.item,parent,false);
return new myViewHolder (view);
}
class myViewHolder extends RecyclerView.ViewHolder{
TextView currentDate, fullName, currentDateandTime;
public myViewHolder(@NonNull View itemView) {
super (itemView);
currentDate = (TextView)itemView.findViewById (R.id.tvTanggalPengajuan);
fullName = (TextView)itemView.findViewById (R.id.tvNama);
currentDateandTime = (TextView)itemView.findViewById (R.id.tvNomorkontrak);
}
}
public interface OnNoteListener{
void OnNoteListener(int position);
}
}
i've following this method using "*" that look like this, but still failed Search firebase realtime database base on 6 digit in front of the child data, i want to query data between two numbers (dates)