从listview中的FireBase(Android)中检索特定值数据

时间:2017-05-13 11:23:23

标签: java android performance listview firebase-realtime-database

I want to retrieve all that data whose blood group have B+ value

mFirebaseInstance = FirebaseDatabase.getInstance();
mFirebaseRef = mFirebaseInstance.getReferenceFromUrl("https://c7d86.firebaseio.com");


mFirebaseRef.child("bloodgroup").equalTo("B+").addChildEventListener(new ChildEventListener() {
        @Override
        public void onChildAdded(DataSnapshot dataSnapshot, String s) {
            getUpdate(dataSnapshot);
        }

        @Override
        public void onChildChanged(DataSnapshot dataSnapshot, String s) {
            getUpdate(dataSnapshot);
        }

        @Override
        public void onChildRemoved(DataSnapshot dataSnapshot) {
        }

        @Override
        public void onChildMoved(DataSnapshot dataSnapshot, String s) {
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }


    });

所以请帮助我,因为我是firebase的新学员,并且必须知道如何在此编写查询。

1 个答案:

答案 0 :(得分:0)

Firebase数据库查询会评估执行查询的节点下的子项。因此,在您使用mFirebaseRef.child("bloodgroup")的情况下,它会查找/bloodgroup,然后查询其下的子项。由于没有/bloodgroup,因此没有结果。

正确的代码:

mFirebaseRef = mFirebaseInstance.getReference();
DatabaseReference queryLocation = mFirebaseRef.child("the key under bloodfinder-c7d86 in the screenshot");
Query query = queryLocation.orderByChild("bloodgroup").equalTo("B+");

query.addChildEventListener(new ChildEventListener() {
        @Override

请注意,我必须做一些猜测,因为你分享了JSON的图片。对于将来的问题,请将JSON共享为文本。您可以点击Firebase Database console

中的“导出JSON”链接来获取此信息