【发布时间】:2026-02-18 13:25:02
【问题描述】:
如何从嵌套数据库中获取具有相同name_mov 值的所有对象。我有一个EditText,从中我得到一个字符串,用于从嵌套数据库中搜索具有相同mov_name 值的对象。我想使用 Firebase-UI 在RecyclerView 中显示bolly/new 和bolly/popular 下所有具有相同mov_name 值的对象的列表。
这是数据库结构:
我做了什么-
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_search);
progressBar = findViewById(R.id.spin_search);
progressBar.setVisibility(View.GONE);
recyclerView = findViewById(R.id.rec_search);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
editText = findViewById(R.id.ed_search);
editText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
firebaseSearch(s.toString());
}
@Override
public void afterTextChanged(Editable s) {
}
});
mFirebaseDatabase = FirebaseDatabase.getInstance();
mDatabaseReference = mFirebaseDatabase.getReference();
}
//search data
private void firebaseSearch(String s) {
/*Toast.makeText(AllUserActivity.this, "Started Search", Toast.LENGTH_LONG).show();*/
progressBar.setVisibility(View.VISIBLE);
Query firebaseSearchQuery = mDatabaseReference.equalTo(s);
//set Options
FirebaseRecyclerOptions<MovieObj> options =
new FirebaseRecyclerOptions.Builder<MovieObj>()
.setQuery(firebaseSearchQuery, MovieObj.class)
.setLifecycleOwner(this)
.build();
adapter = new FirebaseRecyclerAdapter<MovieObj, SearchMovHolder>(options) {
@Override
protected void onBindViewHolder(@NonNull SearchMovHolder holder, int position, @NonNull MovieObj model) {
progressBar.setVisibility(View.GONE);
holder.name.setText(model.getName_mov());
holder.rating.setText( model.getRating());
holder.year.setText( model.getYear());
Glide.with(holder.img_back.getContext())
.load(model.getImgback())
.into(holder.img_back);
}
@NonNull
@Override
public SearchMovHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View mView = LayoutInflater.from(parent.getContext()).inflate(R.layout.search_mov_item, parent, false);
return new SearchMovHolder(mView);
}
};
recyclerView.setAdapter(adapter);
}
【问题讨论】:
标签: java android firebase search firebase-realtime-database