【问题标题】:Cannot convert HashMap data to List of objects (Model class)无法将 HashMap 数据转换为对象列表(模型类)
【发布时间】:2021-08-10 10:51:24
【问题描述】:

我在 Firebase 数据库中有地址列表。它是这样检索的:

    addressesRef
        .addListenerForSingleValueEvent(object : ValueEventListener {
            override fun onDataChange(snapshot: DataSnapshot) {
                if (snapshot.exists()) {

                    
                    //Toast.makeText(this@AddressActivity, "Addresses fetched!", Toast.LENGTH_SHORT).show()
                }
            }

注意带有 2 个 ID 的地址(它们以相反的顺序获取)

我正在尝试将其转换为 ArrayList<Address>,其中 Address 是我的模型类。我该怎么做?

【问题讨论】:

  • 您需要单个子项 (Ad_100000) 还是所有子项(Ad_100000、Ad_100001 等)的值?
  • 所有孩子,因此是列表。

标签: android firebase-realtime-database arraylist hashmap


【解决方案1】:

看起来您在数据库中拥有的是Map<String, Address>,而不是List<Address>。如果您只想获取 Address 值,您可以加载地图并获取其值,或者(首选):

override fun onDataChange(snapshot: DataSnapshot) {
    if (snapshot.exists()) {
        for (addressSnapshot in snapshot.children) {
            val address = addressSnapshot.getValue<Address>();
            ...
        }
    }
}

【讨论】:

  • 先生您在哪里?!我不得不为此浪费很多时间。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-20
  • 2021-06-09
  • 2016-10-21
  • 1970-01-01
  • 2021-07-20
  • 1970-01-01
相关资源
最近更新 更多