我得到了这个错误,无法解决:反序列化时需要一个List,但是有一个类java.lang.String;

时间:2019-05-11 20:57:32

标签: firebase firebase-realtime-database kotlin

我知道那是星期天,但是我遇到了这个问题,而且我不知道如何解决它。  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
            }

        })

... 谢谢你们!

0 个答案:

没有答案