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

我已经创建了这个数据库,在此处输入图像描述,并希望显示专门针对儿童可用性的列表:“可用”项目。通过这段代码,我几乎达到了目标


public class Homeuser extends AppCompatActivity {


SharedPreferences preferences;

SharedPreferences.Editor editor;

ListView lv;


FirebaseListAdapter adapter;


@Override

protected 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());}

        }


    };}}

但是面临这样的问题:


在此处输入图片描述如何摆脱这个?谢谢。



慕容3067478
浏览 104回答 1
1回答

慕标琳琳

如果你想过滤 Firebase 数据库记录,你应该在你的方法中使用查询whereEqual()和调用而不是if 语句。populateView()所以要解决这个问题,请更改以下代码行:Query&nbsp;query&nbsp;=&nbsp;FirebaseDatabase.getInstance().getReference().child("food");到Query&nbsp;query&nbsp;=&nbsp;FirebaseDatabase.getInstance().getReference() &nbsp;&nbsp;&nbsp;&nbsp;.child("food") &nbsp;&nbsp;&nbsp;&nbsp;.orderByChild("availability") &nbsp;&nbsp;&nbsp;&nbsp;.equalTo("Available");并删除 if 语句。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java