首页 > 解决方案 > 我得到了这个错误并且无法解决它:反序列化时期望一个列表,但得到一个类 java.lang.String;

问题描述

我知道那是星期天,但我遇到了这个问题,我不知道如何解决它。ps:stackoverflow 中的其他问题是在 java 中,我使用的是 kotlin,并且是关于地图错误,而不是列表。

我的班级用户

   @Parcelize
    class User (val primeiroLogin:Boolean, val tutorialComplete:Boolean, val 
    username:String, val uid:String, val viewed:ArrayList<String>) : Parcelable {
        constructor() : this(true,false,"","", ArrayList())
    }

我得到错误的大部分活动

var viewed = ArrayList<String>()

        private fun selectCategories(){
        val ref = FirebaseDatabase.getInstance().getReference("/users")
        ref.addListenerForSingleValueEvent(object: ValueEventListener{
            override fun onCancelled(p0: DatabaseError) {

            }
            override fun onDataChange(p0: DataSnapshot) {
                var cUid = ""
                val user = FirebaseAuth.getInstance().currentUser
                user?.let {
                    val uid = user.uid
                    cUid = uid
                }
                p0.children.forEach{
                    val user = it.getValue(User::class.java)
                        if(user?.uid == cUid){
                            viewed = user.viewed
                        }
                }

            }

        })

    }

    private fun fetchCategories(){
        val ref = FirebaseDatabase.getInstance().getReference("/categories")
        ref.addListenerForSingleValueEvent(object: ValueEventListener{

            override fun onCancelled(p0: DatabaseError) {

            }

            override fun onDataChange(p0: DataSnapshot) {

                val adapter = GroupAdapter<ViewHolder>()
                p0.children.forEach{
                    val category = it.getValue(Category::class.java)
                    if(category != null){
                        for (i in 0..viewed.size) {
                            if(category.real_name != viewed[i]){
                                adapter.add(categories(category))
                            }
                        }
                    }

                }

                adapter.setOnItemClickListener { item, view ->

                    val categories = item as categories
                    val intent = Intent(view.context, LearningFirstLibras::class.java)
                    intent.putExtra(CATEGORY_KEY, categories.category)
                    startActivity(intent)
                }
                new_words_categories.adapter = adapter
            }

        })

..... 感谢你们!

标签: firebasefirebase-realtime-databasekotlin

解决方案


推荐阅读