具有条件的Firebase UI中的空行?

时间:2017-02-16 14:51:05

标签: android firebase firebase-realtime-database firebaseui

使用FirebaseUI时,Firebase存在问题。当条件不是true时,它会添加不需要的空行。

我需要删除此空行。

这是图片显示问题:

enter image description here

 DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReferenceFromUrl("*****");
     FirebaseListAdapter<Opinions> firebaseListAdapter = new FirebaseListAdapter<Opinions>(this,Opinions.class,android.R.layout.two_line_list_item,databaseReference) {
         @Override
         protected void populateView(View v, Opinions model, int position) {
             TextView textView1 = (TextView) v.findViewById(android.R.id.text1);
             TextView textView2 = (TextView) v.findViewById(android.R.id.text2);

             Typeface Myfont = Typeface.createFromAsset(getAssets(), "font/gernralfont.ttf");

             textView1.setTypeface(Myfont);
             textView2.setTypeface(Myfont);
             textView2.setTextSize(17);
             textView2.setTextColor(Color.parseColor("#6eaafc"));
             textView1.setTextColor(Color.parseColor("#4d70a0"));

             if (model.isApproval() == true)
             {
                 textView1.setText( "\n" + model.getStu_name() + " / " + model.getStu_feild() + "\n" );
                 textView2.setText(model.getStu_comment() + "\n");
             }



         }
     };

    hilist.setAdapter(firebaseListAdapter);

如何删除此空行?

1 个答案:

答案 0 :(得分:3)

您的应用是当前正在阅读该位置的所有数据。但是,由于您只对显示已批准的数据感兴趣,因此您应该只读取这些子节点。

您可以使用Firebase Database query执行此操作,然后可以将其传递到适配器而不是当前引用:

DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReferenceFromUrl("*****");
Query query = databaseReference.orderByChild("approval").equalTo(true);
FirebaseListAdapter<Opinions> firebaseListAdapter = 
  new FirebaseListAdapter<Opinions>(this, Opinions.class,
                                    android.R.layout.two_line_list_item, query) {
  ...