How to get Array List Object From Firebase

12,792

Sorry if you were working on this all I needed to do was change the directory.

ValueEventListener postListener = new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot snapshot) {
                GenericTypeIndicator<ArrayList<Item>> t = new GenericTypeIndicator<ArrayList<Item>>() {};
                ArrayList<Item> yourStringArray = snapshot.getValue(t);
                Toast.makeText(getContext(),yourStringArray.get(0).getName(),Toast.LENGTH_LONG).show();
            }
            @Override
            public void onCancelled(DatabaseError firebaseError) {
                Log.e("The read failed: " ,firebaseError.getMessage());
            }
        };
        mDatabase.child("list/user1").addValueEventListener(postListener);
Share:
12,792
Jack Resone
Author by

Jack Resone

Updated on July 05, 2022

Comments

  • Jack Resone
    Jack Resone almost 2 years

    I added an ArrayList to the Firebase but I don't know how to get it back.

    mDatabase.child("list").child("person").setValue(myValues);
    //This is how I added it to my firebase
    

    What I have tried is this. This is my error message

    com.google.firebase.database.DatabaseException: Can't convert object of type java.util.ArrayList to type Item

    ValueEventListener postListener = new ValueEventListener() {
                @Override
                public void onDataChange(DataSnapshot snapshot) {
                    for (DataSnapshot data : snapshot.getChildren()) {
                        GenericTypeIndicator<HashMap<String, Item>> t = new GenericTypeIndicator<HashMap<String, Item>>() {};
    
                        HashMap<String, Item> beans = data.getValue(t);
    
                        Set set = beans.entrySet();
                        Iterator i = set.iterator();
    
                        // Display elements
                        while (i.hasNext()) {
                            Map.Entry me = (Map.Entry) i.next();
                            Toast.makeText(getContext(), me.getKey() + ": ", Toast.LENGTH_LONG).show();
                            Toast.makeText(getContext(), me.getValue().toString(), Toast.LENGTH_LONG).show();
                            System.out.println(me.getValue());
                        }
                    }
    
                }
                @Override
                public void onCancelled(DatabaseError firebaseError) {
                    Log.e("The read failed: " ,firebaseError.getMessage());
                }
            };
            mDatabase.addValueEventListener(postListener);