Firebase数据库查询

时间:2017-06-27 12:20:33

标签: android firebase firebase-realtime-database querying uid

我正在使用firebase数据库来检索数据,实际上我想根据用户的'cCompany'过滤数据。我正在使用一个edittext字段,它将输入到下面函数的数据(sCompany)传入'filt'。因此,当我尝试使用此'filt'进行查询时,只有当cCompany存在于最顶层用户的uid中时,它才会过滤数据。如果它存在于其他uid中,那么它不会过滤数据。请解决这个问题。

private void addEventFirebaseListener1(final String filt) {
    //Progressing
    DatabaseReference usersRef = 
  FirebaseDatabase.getInstance().getReference("Users");
    ValueEventListener eventListener = new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            for (DataSnapshot ds : dataSnapshot.getChildren()) {

                String userId = ds.getKey();

         DatabaseReference userIdRef = FirebaseDatabase
.getInstance().getReference("Users").child(userId).child("Complaints");
          Query q =userIdRef.orderByChild("cCompany").equalTo(filt);
     ValueEventListener valueEventListener = new ValueEventListener() {
                    @Override
                    public void onDataChange(DataSnapshot dataSnapshot) 
             {


          for (DataSnapshot postSnapshot : dataSnapshot.getChildren()) 

            {
       Generalperson user = postSnapshot.getValue(Generalperson.class);
                            list_users.add(user);


                        }
                        if (list_users.size() != 0) {
                            ServiceComplaintAdapter adapter = new 
 ServiceComplaintAdapter(ServiceComplaintsActivity.this, list_users);
                            list_data.setAdapter(adapter);
                        } else {

                            list_data.setVisibility(View.INVISIBLE);
                            k.setVisibility(View.VISIBLE);


                        }

  circular_progress.setVisibility(View.INVISIBLE);

                    }

                    @Override
            public void onCancelled(DatabaseError databaseError) {

                    }

                };
                q.addListenerForSingleValueEvent(valueEventListener);
            }


        }

        @Override
        public void onCancelled(DatabaseError databaseError) {}
    };
    usersRef.addListenerForSingleValueEvent(eventListener);


  }

Database image

0 个答案:

没有答案