Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kotlin Firebase:Can';t将java.lang.String类型的对象转换为com.example.Model.perizinan类型_Firebase_Kotlin_Android Recyclerview - Fatal编程技术网

Kotlin Firebase:Can';t将java.lang.String类型的对象转换为com.example.Model.perizinan类型

Kotlin Firebase:Can';t将java.lang.String类型的对象转换为com.example.Model.perizinan类型,firebase,kotlin,android-recyclerview,Firebase,Kotlin,Android Recyclerview,我正在尝试将数据从Firebase加载到RecyclerView,我需要将数据从Firebase加载到ArrayList,但我得到以下错误: com.google.firebase.database.DatabaseException: Can't convert object of type java.lang.String to type com.example.Model.perizinan class perizinan(val imageUrl:String, val namakeg

我正在尝试将数据从Firebase加载到RecyclerView,我需要将数据从Firebase加载到ArrayList,但我得到以下错误:

com.google.firebase.database.DatabaseException: Can't convert object of type java.lang.String to type com.example.Model.perizinan
class perizinan(val imageUrl:String, val namakegiatan:String, val keterangan:String, val waktuKegiatan:String, val presensiIzin:String, val tanggalkegiatan:String)
class izin(val perizinan:List<perizinan>)
fun readFirebaseDatabase(){

    val ref= FirebaseDatabase.getInstance().getReference("Admin")
    ref.addValueEventListener(object: ValueEventListener {

        override fun onCancelled(p0: DatabaseError) {
            Log.e("AdminActivity","cancelled")
        }

        override fun onDataChange(p0: DataSnapshot) {
            val uid = FirebaseAuth.getInstance().uid

            p0.child(uid!!).children.forEach{

                it.children.forEach{

                val posts = ArrayList<perizinan>()

                for (snapshot in it.children) {
                    val post = snapshot.getValue(perizinan::class.java)
                    posts.add(post!!)
                }

                    RecyclerViewAdmin.layoutManager = LinearLayoutManager(this@AdminActivity)
                    RecyclerViewAdmin.adapter = adminAdapter(izin(posts), this@AdminActivity)

                }
            }


        }
    })

}
这是我的

com.google.firebase.database.DatabaseException: Can't convert object of type java.lang.String to type com.example.Model.perizinan
class perizinan(val imageUrl:String, val namakegiatan:String, val keterangan:String, val waktuKegiatan:String, val presensiIzin:String, val tanggalkegiatan:String)
class izin(val perizinan:List<perizinan>)
fun readFirebaseDatabase(){

    val ref= FirebaseDatabase.getInstance().getReference("Admin")
    ref.addValueEventListener(object: ValueEventListener {

        override fun onCancelled(p0: DatabaseError) {
            Log.e("AdminActivity","cancelled")
        }

        override fun onDataChange(p0: DataSnapshot) {
            val uid = FirebaseAuth.getInstance().uid

            p0.child(uid!!).children.forEach{

                it.children.forEach{

                val posts = ArrayList<perizinan>()

                for (snapshot in it.children) {
                    val post = snapshot.getValue(perizinan::class.java)
                    posts.add(post!!)
                }

                    RecyclerViewAdmin.layoutManager = LinearLayoutManager(this@AdminActivity)
                    RecyclerViewAdmin.adapter = adminAdapter(izin(posts), this@AdminActivity)

                }
            }


        }
    })

}
class perizinan(val-imageUrl:String,val-namakegiatan:String,val-keteragan:String,val-waktuKegiatan:String,val-presensisizin:String,val-tanggalkegiatan:String)
izin类(val perizinan:列表)
这是我的代码

com.google.firebase.database.DatabaseException: Can't convert object of type java.lang.String to type com.example.Model.perizinan
class perizinan(val imageUrl:String, val namakegiatan:String, val keterangan:String, val waktuKegiatan:String, val presensiIzin:String, val tanggalkegiatan:String)
class izin(val perizinan:List<perizinan>)
fun readFirebaseDatabase(){

    val ref= FirebaseDatabase.getInstance().getReference("Admin")
    ref.addValueEventListener(object: ValueEventListener {

        override fun onCancelled(p0: DatabaseError) {
            Log.e("AdminActivity","cancelled")
        }

        override fun onDataChange(p0: DataSnapshot) {
            val uid = FirebaseAuth.getInstance().uid

            p0.child(uid!!).children.forEach{

                it.children.forEach{

                val posts = ArrayList<perizinan>()

                for (snapshot in it.children) {
                    val post = snapshot.getValue(perizinan::class.java)
                    posts.add(post!!)
                }

                    RecyclerViewAdmin.layoutManager = LinearLayoutManager(this@AdminActivity)
                    RecyclerViewAdmin.adapter = adminAdapter(izin(posts), this@AdminActivity)

                }
            }


        }
    })

}
fun readFirebaseDatabase(){
val ref=FirebaseDatabase.getInstance().getReference(“管理员”)
ref.addValueEventListener(对象:ValueEventListener{
已取消覆盖乐趣(p0:DatabaseError){
Log.e(“AdminActivity”、“已取消”)
}
覆盖数据更改(p0:DataSnapshot){
val uid=FirebaseAuth.getInstance().uid
p0.child(uid!!).children.forEach{
它,孩子们{
val posts=ArrayList()
用于(it.children中的快照){
val post=snapshot.getValue(perizinan::class.java)
添加(post!!)
}
RecycleServiceAdmin.layoutManager=LinearLayoutManager(this@AdminActivity)
recycleServiceAdmin.adapter=adminAdapter(izin(posts),this@AdminActivity)
}
}
}
})
}
下面是我的数据库结构:

com.google.firebase.database.DatabaseException: Can't convert object of type java.lang.String to type com.example.Model.perizinan
class perizinan(val imageUrl:String, val namakegiatan:String, val keterangan:String, val waktuKegiatan:String, val presensiIzin:String, val tanggalkegiatan:String)
class izin(val perizinan:List<perizinan>)
fun readFirebaseDatabase(){

    val ref= FirebaseDatabase.getInstance().getReference("Admin")
    ref.addValueEventListener(object: ValueEventListener {

        override fun onCancelled(p0: DatabaseError) {
            Log.e("AdminActivity","cancelled")
        }

        override fun onDataChange(p0: DataSnapshot) {
            val uid = FirebaseAuth.getInstance().uid

            p0.child(uid!!).children.forEach{

                it.children.forEach{

                val posts = ArrayList<perizinan>()

                for (snapshot in it.children) {
                    val post = snapshot.getValue(perizinan::class.java)
                    posts.add(post!!)
                }

                    RecyclerViewAdmin.layoutManager = LinearLayoutManager(this@AdminActivity)
                    RecyclerViewAdmin.adapter = adminAdapter(izin(posts), this@AdminActivity)

                }
            }


        }
    })

}

您之所以会出现此错误,是因为您在尝试从数据库获取
perizinan
对象时使用了错误的引用。要解决此问题,请更改以下代码行:

val ref= FirebaseDatabase.getInstance().getReference("Admin")


Admin
节点下的第一个uid是登录用户的
uid
,第二个和第三个uid是什么的id?第二个uid来自消息发送者,第三个是消息uid,这类似于聊天应用程序,所以您想在登录用户id或消息uid下获取所有帖子?在第一种情况下,这仅仅是一个。在消息uid下,请注意,但我不能向recyclerview显示,哈哈哈,解决这个问题会带来另一个问题:vYa,这一直在发生。这听起来像是一个新问题,基本上应该被视为另一个问题,因此请使用发布另一个新问题,以便我和其他Firebase开发人员可以帮助您。