java - 无法从 firebase 获取城市列表

标签 java android firebase firebase-realtime-database

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

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

数据库结构:

enter image description here

下面是我的代码:

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

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

谢谢

最佳答案

代码中的问题很可能是进行额外的 .child() 调用。所以要解决这个问题,请更改以下代码行:

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

FirebaseCityModel areaName = areaSnapshot.getValue(FirebaseCityModel.class);

关于java - 无法从 firebase 获取城市列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57325742/

相关文章:

android - 清理项目时自动创建已签名的 APK

android - 如何从 firebase 中检索选定的节点?

java - 过滤 firebase 中的子数据

java - ArrayList 上的 for 循环更改对象

java - 在Java中使用解密的三重des(3des)​​,得到“javax.crypto.IllegalBlockSizeException:解密中的最后一个 block 不完整”的错误

java - 在获取用户输入之前的 System.out.println()

java - Android ant 编译失败 : java. lang.NoClassDefFoundError : com. android.jarutils.SignedJarBuilder

android - 无法制作可执行的签名发布版本dexgaurd

javascript - 在 Firebase 中处理用户的在线和离线状态

ios - 未收到 Twilio 聊天推送通知(Ionic 和 Firebase)