无法从 firebase 获取城市列表

我正在尝试从 Firebase 获取城市列表并在微调器中显示。但是我在下面收到以下错误:

com.google.firebase.database.DatabaseException:无法将 java.lang.String 类型的对象转换为 Models.FirebaseCityModel 类型

数据库结构:

http://img.mukewang.com/645b461200019b1c06250206.jpg

下面是我的代码:


 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();

        }

    });

有人请让我知道我做错了什么。任何帮助,将不胜感激。


达令说
浏览 112回答 2
2回答

MYYA

代码中的问题很可能是正在进行额外的.child()调用。所以要解决这个问题,请更改以下代码行:FirebaseCityModel&nbsp;areaName&nbsp;=&nbsp;areaSnapshot.child("city").getValue(FirebaseCityModel.class);到FirebaseCityModel&nbsp;areaName&nbsp;=&nbsp;areaSnapshot.getValue(FirebaseCityModel.class);

心有法竹

在内部onDataChange()将您的代码更改为 -FirebaseCityModel&nbsp;areaName&nbsp;=&nbsp;areaSnapshot.getValue(FirebaseCityModel.class);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java