Ad

Unable To Get List Of Cities From Firebase

I am trying to get list of cities from Firebase and showing in spinner. But I am getting following error below:

com.google.firebase.database.DatabaseException: Can't convert object of type java.lang.String to type Models.FirebaseCityModel

Database structure:

enter image description here

Below is my code:

 dRef.child("Cities").addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

            List<FirebaseCityModel> cities = new ArrayList<>();

            for(DataSnapshot areaSnapshot:dataSnapshot.getChildren()){
                FirebaseCityModel areaName = areaSnapshot.getValue(FirebaseCityModel.class);
                cities.add(areaName);
            }
            ArrayAdapter<String> adapter = new ArrayAdapter<String>(MainActivity.this,R.layout.spinner_city,
                    R.id.locaions,list);

            chooseLocation.setAdapter(adapter);
        }

        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {

            TastyToast.makeText(getApplicationContext(),"Unable to fetch locations",TastyToast.LENGTH_SHORT,TastyToast.ERROR).show();
        }
    });

Someone please let me know what I am doing wrong. Any help would be appreciated.

THANKS

Ad

Answer

Most likely the problem in code is that are making an extra .child() call. So to solve this, please change the following line of code:

FirebaseCityModel areaName = areaSnapshot.child("city").getValue(FirebaseCityModel.class);

to

FirebaseCityModel areaName = areaSnapshot.getValue(FirebaseCityModel.class);
Ad
source: stackoverflow.com
Ad