我正在制作一个应用程序,并且具有一个具有以下JSON结构的Firebase实时数据库:

{
  "learnhtml": {
    "1534958785102": {
      "id": "1534958785102",
      "title": "What is html",
      "details": "What is html",
      "code": "What is html",
      "status":"1"
    },
    "1534959878751": {
      "id": "1534959878759",
      "title": "",
      "details": "What is html",
      "code": "What is html",
      "status":"1"
    }
    "1534959878753": {
      "id": "1534959878759",
      "title": "",
      "details": "What is html",
      "code": "What is html",
      "status":"2"
    }
  }
}


因此,我想按状态从Firebase数据库检索所有数据,这意味着我想检索all data WHERE status = 1

这是我的班级文件:

public class LearnCode {
    String id;
    String title;
    String details;
    String code;
    String type;
    String status;

    public LearnCode() {}

    public LearnCode(String id, String title, String details, String code, String type, String status) {
        this.id = id;
        this.title = title;
        this.details = details;
        this.code = code;
        this.type = type;
        this.status = status;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getDetails() {
        return details;
    }

    public void setDetails(String details) {
        details = details;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }
}


这是我当前获取所有数据的代码

myref = FirebaseDatabase.getInstance().getReference("learnhtml");
final FirebaseRecyclerAdapter<LearnCode, BlogViewHolder> recyclerAdapter = new FirebaseRecyclerAdapter<LearnCode, BlogViewHolder>(
                    LearnCode.class,
                    R.layout.each_row,
                    BlogViewHolder.class,
                    myref
            ) {
                @Override
                protected void populateViewHolder(BlogViewHolder viewHolder, final LearnCode model, final int position) {
                    progressDialog.dismiss();
                    viewHolder.setTitle(model.getTitle());

                    viewHolder.itemId.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View view) {

                            /*final LearnCode domain = model;

                            rowId = domain.getId();
                            Intent intent = new Intent(shofolotarGolpo.this, Details.class);
                            intent.putExtra("id", rowId);
                            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                            startActivity(intent);*/
                        }
                    });
                }
            };
            recyclerView.setAdapter(recyclerAdapter);
        }

最佳答案

一种简单的方法是获取所有元素并仅使用所需的元素

    reference.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {

                Iterable<DataSnapshot> mData = dataSnapshot.getChildren();

                for(DataSnapshot d : mData){

                    LearnCode learnCode = d.getValue(LearnCode.class);

                    if(learnCode.getStatus == '1'){
                     //do what u want
                       }

                }
            }

            @Override
            public void onCancelled(DatabaseError databaseError) {

            }
        });

08-17 22:21
查看更多