简体   繁体   English

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

[英]Retrieve all data from Firebase Database

ANDROID: I have a Firebase database like this. ANDROID:我有这样的Firebase数据库。 phoot

In my app, I would like to compile an arraylist that displays all values from the nameofEntry [DESCRIBED BELOW]. 在我的应用程序中,我想编译一个arraylist,显示nameofEntry [DESCRIBED BELOW]中的所有值。 By this I mean the "balso," the "nairboh" and so on. 我指的是“balso”,“nairboh”等等。

I have the references: 我有参考:

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

            }
        });

But this only fetches for one entry. 但这仅取一个条目。 How can I get more entries? 我怎样才能获得更多参赛作品? [All of them]? [他们全部]?

You need to use this code snippet. 您需要使用此代码段。 You haven't used any for loop to step over your children. 您没有使用任何for循环来跨过您的孩子。

EDIT: Also, update your database reference as: 编辑: 此外,更新您的数据库引用:

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

                        }
                    });

Do let me know if it changes anything for you. 如果它改变了你的任何内容,请告诉我。

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

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