我正在尝试从 Firebase 获取城市列表并在微调器中显示。但是我在下面收到以下错误:com.google.firebase.database.DatabaseException:无法将 java.lang.String 类型的对象转换为 Models.FirebaseCityModel 类型数据库结构:下面是我的代码: 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(); } });有人请让我知道我做错了什么。任何帮助,将不胜感激。
2 回答
MYYA
TA贡献1868条经验 获得超4个赞
代码中的问题很可能是正在进行额外的.child()
调用。所以要解决这个问题,请更改以下代码行:
FirebaseCityModel areaName = areaSnapshot.child("city").getValue(FirebaseCityModel.class);
到
FirebaseCityModel areaName = areaSnapshot.getValue(FirebaseCityModel.class);
心有法竹
TA贡献1866条经验 获得超5个赞
在内部onDataChange()
将您的代码更改为 -
FirebaseCityModel areaName = areaSnapshot.getValue(FirebaseCityModel.class);
添加回答
举报
0/150
提交
取消