如何从Firebase数据库中检索单个数据

时间:2017-11-13 06:04:55

标签: android firebase firebase-realtime-database

我需要从Firebase数据库中检索单个数据。我在哪里有一个列表视图包含id列表。每当用户点击listview我需要显示相应的值字段时。

检查db

的屏幕截图

image

这是代码。

 l1.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

                        r2= FirebaseDatabase.getInstance().getReference().child("type").child("discord").child("ad");

                        r2.addChildEventListener(new ChildEventListener() {
                        @Override
                        public void onChildAdded(DataSnapshot dataSnapshot, String s) {
                            String name1;
                            name1=dataSnapshot.getValue().toString();
                            Toast.makeText(Main2Activity.this, name1, Toast.LENGTH_SHORT).show();
                        }

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

                        }

                        @Override
                        public void onChildRemoved(DataSnapshot dataSnapshot) {

                        }

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

                        }

                        @Override
                        public void onCancelled(DatabaseError databaseError) {

                        }
                    });





                }
            });

我需要执行查询

从table_name中选择值,其中id =&#34; 01&#34; ;

2 个答案:

答案 0 :(得分:0)

您需要更改以下代码行:

name1=dataSnapshot.getValue().toString();

name1=dataSnapshot.child("01").getValue(String.class);

答案 1 :(得分:0)

addChildEventListener更改为addValueEventListener

例如:

r2.addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        String name1 = dataSnapshot.child("01").getValue(String.class);
        Toast.makeText(Main2Activity.this, name1, Toast.LENGTH_SHORT).show();
    }
    @Override
    public void onCancelled(DatabaseError databaseError) {
        Log.e(TAG, "onCancelled", databaseError.toException());
    }
});

Reference