在firebase实时数据库中查找所有匹配项

时间:2017-02-28 14:23:13

标签: android search firebase firebase-realtime-database

您好我需要在firebase中使用一个参数在数据库中搜索所有外观并将其写在显示器上或保存在对象中。 (如果保存在对象中我可以处理它)

我的数据库正在寻找

My data

我需要获得所有匹配mDatabaseReference.child(“horse”)。child(kon.getUid())。child(“plemeno”)with“Hnedy”

并保存在某个地方。或者在显示屏上写入并在第二步进行搜索。

我不知道为什么......

感谢。

如果我需要遍历所有数据库进行搜索,或者只是在这里。

请给我最适合我的所有建议。

如果您需要更多信息,请写信,但我不知道您的需求。

..我不知道该说什么

/////////////////////////////////////////////// /

首先我用显示的代码在显示器上写下所有数据库..

private void addEventFirebaseListener() {
    //Progressing
    circular_progress.setVisibility(View.VISIBLE);
    list_data.setVisibility(View.INVISIBLE);

    mDatabaseReference.child("horse").addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            if(list_kone.size() > 0)
                list_kone.clear();
            for(DataSnapshot postSnapshot:dataSnapshot.getChildren()){
                Kon kon = postSnapshot.getValue(Kon.class);
                list_kone.add(kon);
            }
            ListViewAdapter adapter = new ListViewAdapter(All.this,list_kone);
            list_data.setAdapter(adapter);

            circular_progress.setVisibility(View.INVISIBLE);
            list_data.setVisibility(View.VISIBLE);
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });
}

但我觉得这对搜索来说并不重要

1 个答案:

答案 0 :(得分:1)

试试这个:

mDatabaseReference.child("horse").orderByChild("plemeno").equalTo("Hnedy").addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) { 
            // retrieve the data into an object: kon here
            for(DataSnapshot postSnapshot : dataSnapshot.getChildren()){
                Kon kon = postSnapshot.getValue(Kon.class);
                if (cenaFilter && kon.getCena().equals("100")) {
                   // RETRIEVE DATA
                }
            }
        }

        @Override
        public void onCancelled(FirebaseError firebaseError) {

        }
    });

此处cenaFilter是一个布尔值,如果用户选择了此特定过滤器,则等于true,否则为false