简体   繁体   English

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

[英]how to retrieve single data from the Firebase database

I need to retrieve single data from Firebase database. 我需要从Firebase数据库检索单个数据。 Where I have a list view contains id list. 我在列表视图中包含ID列表。 Whenever user clicks the listview i need to display the respective value field. 每当用户单击listview我都需要显示相应的值字段。

check screen shot of db 检查数据库的屏幕截图

图片

here is the code. 这是代码。

 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) {

                        }
                    });





                }
            });

I need to execute the query 我需要执行查询

select value from table_name where id="01" ; 从table_name中选择值,其中id =“ 01”;

You need to change this line of code: 您需要更改以下代码行:

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

with

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

Change the addChildEventListener to addValueEventListener . addChildEventListener更改为addValueEventListener

For example: 例如:

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 参考

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM