代码之家  ›  专栏  ›  技术社区  ›  Vector

Android FireBase迭代数据存储

  •  1
  • Vector  · 技术社区  · 8 年前

    我们有一个非常扁平的firebase数据结构,并试图通过首先将数据库加载到哈希映射将数据库加载到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 回复  |  直到 8 年前
        1
  •  3
  •   Rosário Pereira Fernandes Aabid Ansar    8 年前

    正如您在注释中提到的:您已经定义了一个迭代器,但没有使用它。你只需要在数组列表中添加一个子元素。您可以迭代每个子元素,将其添加到数组列表中,如下所示:

    ArrayList<String> objArrayList = new ArrayList<>();
    for(DataSnapshot child : dataSnapshot.getChildren())
        objArrayList.add(child.getValue(String.class));
    
    推荐文章