【发布时间】:2019-12-11 00:54:52
【问题描述】:
我正在尝试从 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();
}
});
请有人告诉我我做错了什么。任何帮助将不胜感激。
谢谢
【问题讨论】:
-
请将您的数据库结构添加为 JSON 文件或至少作为屏幕截图。
-
您的问题在这里:
areaSnapshot.child("city").getValue(FirebaseCityModel.class)您需要将其转换为您的模型 -
@Alex 添加数据库结构截图。
-
正是我所想的。只需在下面使用我的答案。
标签: java android firebase firebase-realtime-database