Kotlin Firebase: невозможно преобразовать объект типа java.lang.String в тип com.example.Model.perizinan - PullRequest
0 голосов
/ 31 января 2019

Я пытаюсь загрузить данные из 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 :

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)

                }
            }


        }
    })

}

ниже структура моей базы данных :

enter image description here

1 Ответ

0 голосов
/ 31 января 2019

Вы получаете эту ошибку, потому что используете неверную ссылку при попытке получить объект perizinan из базы данных.Чтобы решить эту проблему, измените следующую строку кода:

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

на

val ref= FirebaseDatabase.getInstance().getReference()
    .child("Admin")
    .child(FirebaseAuth.getInstance().uid)
    .child(senderId)

и

p0.child(uid!!).children.forEach{ /* ... */ }

на

p0.children.forEach{ /* ... */ }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...