首页 > 解决方案 > 如何从 firebase 获取数据到数据模型?

问题描述

我是 Kotlin 的新手。我有一个数据类,其中包含名为 testModel 的图像 url。我需要使用该代码从 firebase 向模型添加数据:

这是我的数据模型: class testModel(val imageLinks: List<String>)

private val dbRef = FirebaseDatabase.getInstance().reference.child("categories").child("1").child("top")


fun readDataFromFirebase(){

    dbRef.addValueEventListener(object : ValueEventListener {
        override fun onDataChange(dataSnapshot: DataSnapshot) {
            var list = ArrayList<testModel>()
            for (e in dataSnapshot.children){
                println(e.value)
            }

        }

        override fun onCancelled(databaseError: DatabaseError) {
            Log.e("DB", "loadPost:onCancelled", databaseError.toException())
        }
    })



}

实际上这个块可以从firebase中获取价值,我可以在运行控制台中看到我的图像网址,但我不能在我的testModel上添加这些。我怎样才能做到?我还需要针对此类工作的良好教程,例如数据模型、使用 Kotlin 读取和写入数据。我在等你的建议。

PS:我已经尝试过getValue方法但是给出了错误 java.lang。

标签: androidfirebasekotlinfirebase-realtime-database

解决方案


在您的数据类中,更改List<String>ArrayList<String>, 因为该类型List<E>在 firebase 中不存在,但数组存在。

将您的数据保存为Array<String>Firebase,然后在检索快照时执行snapshot.toObject(TestModel::class)


推荐阅读