为了账号安全,请及时绑定邮箱和手机立即绑定

这是否可能只显示实时 Firebase 数据库的某些特定子值的列表视图

这是否可能只显示实时 Firebase 数据库的某些特定子值的列表视图

慕容3067478 2023-03-02 10:21:36
我已经创建了这个数据库,在此处输入图像描述,并希望显示专门针对儿童可用性的列表:“可用”项目。通过这段代码,我几乎达到了目标public class Homeuser extends AppCompatActivity {SharedPreferences preferences;SharedPreferences.Editor editor;ListView lv;FirebaseListAdapter adapter;@Overrideprotected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_homeuser);    final Vibrator vibeuser = (Vibrator) Homeuser.this.getSystemService(Context.VIBRATOR_SERVICE);    preferences = PreferenceManager.getDefaultSharedPreferences(this);    editor = preferences.edit();    Query query = FirebaseDatabase.getInstance().getReference().child("food");    lv = findViewById(R.id.list_item);    FirebaseListOptions<food> options = new FirebaseListOptions.Builder<food>()            .setLayout(R.layout.list_items).setLifecycleOwner(Homeuser.this)            .setQuery(query,food.class).build();    adapter = new FirebaseListAdapter(options)    {        @Override        protected void populateView(View v, Object model, int position) {            TextView itemname, itemprice, avail;            itemname = v.findViewById(R.id.itemname);            itemprice = v.findViewById(R.id.itemprice);            avail = v.findViewById(R.id.avail);            food itemFood = (food) model;            if(itemFood.getAvailability().toString().equals("Available")){            itemname.setText(itemFood.getFooditemname().toString());            itemprice.setText(itemFood.getFooditemprice().toString());            avail.setText(itemFood.getAvailability().toString());}        }    };}}但是面临这样的问题:在此处输入图片描述如何摆脱这个?谢谢。
查看完整描述

1 回答

?
慕标琳琳

TA贡献1830条经验 获得超9个赞

如果你想过滤 Firebase 数据库记录,你应该在你的方法中使用查询whereEqual()和调用而不是if 语句。populateView()所以要解决这个问题,请更改以下代码行:

Query query = FirebaseDatabase.getInstance().getReference().child("food");

Query query = FirebaseDatabase.getInstance().getReference()
    .child("food")
    .orderByChild("availability")
    .equalTo("Available");

并删除 if 语句。


查看完整回答
反对 回复 2023-03-02
  • 1 回答
  • 0 关注
  • 97 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信