从Firebase数据库中检索所有数据

时间:2016-10-18 05:32:47

标签: java android firebase firebase-realtime-database

ANDROID:我有这样的Firebase数据库。phoot

在我的应用程序中,我想编译一个arraylist,显示nameofEntry [DESCRIBED BELOW]中的所有值。我的意思是" balso," " nairboh"等等。

我有参考资料:

DatabaseReference root = FirebaseDatabase.getInstance().getReference();
DatabaseReference users = root.child("Users");
DatabaseReference childRef = users.child(userID);
DatabaseReference childRefNameNode = childRef.child(nameOfEntry);
childRefNameNode.child(nameOfEntry).setValue(nameOfEntry);

// FETCH DATA

childRefNameNode.child(nameOfEntry).addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                String valueFromDB = dataSnapshot.getValue(String.class);
                Log.i("Jimit", valueFromDB);


            }

            @Override
            public void onCancelled(DatabaseError databaseError) {

            }
        });

但这仅取一个条目。我怎样才能获得更多参赛作品? [所有人]?

1 个答案:

答案 0 :(得分:0)

您需要使用此代码段。您还没有使用任何 for循环来跨过您的孩子。

编辑: 此外,将您的数据库引用更新为:

//Updated ref
DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("Users").child(userID);*

    //add listener to updated ref
    ref.addValueEventListener(new ValueEventListener() {
                        @Override
                        public void onDataChange(DataSnapshot dataSnapshot) {

                         //use the for loop here to step over each child and retrieve data                   
                         for (DataSnapshot childSnapshot : dataSnapshot.getChildren()){
                            String valueFromDB = childSnapshot.getValue(String.class);
                            Log.i("Jimit", valueFromDB);
                        }


                        }

                        @Override
                        public void onCancelled(DatabaseError databaseError) {

                        }
                    });

如果有任何改变,请告诉我。