Android Firebase итерации хранилище данных - PullRequest
0 голосов
/ 24 мая 2018

У нас очень плоская структура данных Firebase, и мы пытались загрузить БД в ArrayList, сначала загрузив БД в HashMap.Мы знаем, что размер ArrayList равен только 1, что говорит о том, что мы не получаем все данные.Наш вопрос, как перебрать хранилище данных?Мы также используем класс модели с именем UserInformation

    db = FirebaseDatabase.getInstance().getReference(); 
    dbRef = db.child("Quiz Table");
    dbRef.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {

            Iterable<DataSnapshot> children = dataSnapshot.getChildren();

                //GenericTypeIndicator<HashMap<String, Object>> objT = new GenericTypeIndicator<HashMap<String, Object>>() {};
                String objHashMap = dataSnapshot.child(String.valueOf(X)).getValue(String.class);
                ArrayList<String> objArrayList = new ArrayList<>();
                objArrayList.add(String.valueOf(objHashMap));

                if (objArrayList != null) {

                    String question = objArrayList.get(0);
                    String ansone = objArrayList.get(0);
                    String anstwo = objArrayList.get(0);
                    String ansthree = objArrayList.get(0);
                    String ansfour = objArrayList.get(0);
                    String corans = objArrayList.get(0);
                    //etTableName.setText(pName);
                    etQuestion.setText(question);
                    etAnsOne.setText(ansone);
                    etAnsTwo.setText(anstwo);
                    etAnsThree.setText(ansthree);
                    etAnsFour.setText(ansfour);
                    etCorAns.setText(corans);
                }
            }

1 Ответ

0 голосов
/ 24 мая 2018

Как вы упомянули в комментариях: вы определили итератор, но не использовали его.Вы добавляете только одного ребенка в ArrayList.Вы можете перебирать каждого дочернего элемента, добавляя его в свой ArrayList следующим образом:

ArrayList<String> objArrayList = new ArrayList<>();
for(DataSnapshot child : dataSnapshot.getChildren())
    objArrayList.add(child.getValue(String.class));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...