Как получить имя ребенка в Firebase с Kotlin - PullRequest
0 голосов
/ 17 апреля 2020

Я не могу получить только child-name на базе огня.

  mDatabase = FirebaseDatabase.getInstance().getReference("Diary_Subject")
    if (user != null) {
        mDatabase.child(user.uid).addValueEventListener( object :
            ValueEventListener {
            override fun onCancelled(p0: DatabaseError) {
                TODO("not implemented") //To change body of created functions use File ]| Settings | File Templates.
            }

            override fun onDataChange(snapshot: DataSnapshot) {

                if (snapshot!!.exists()){
                    diarylist.clear()
                val subject = snapshot.toString()
                }
})

Это моя база огня

enter image description here

Я хочу, чтобы в моей программе отображалось только имя ребенка, например be

cgnyft

deveg

, но оно показывает

enter image description here

Ответы [ 2 ]

0 голосов
/ 17 апреля 2020

Вы можете использовать ключ снимка:

override fun onDataChange(snapshot: DataSnapshot) {
    for (postSnapshot in snapshot.children) {
        val name = postSnapshot.getKey()
        Log.d("Name",name)
    }
}

Если вы хотите использовать "Diary_Subject", вы можете сделать это так:

override fun onDataChange(snapshot: DataSnapshot) {
    for (postSnapshot in snapshot.children) {
        val name = postSnapshot.child("Diary_Subject").getValue(String.class)
        Log.d("Name",name)
    }
}
0 голосов
/ 17 апреля 2020

, если вы хотите получить значение снимка данных

Попробуйте это

mDatabase.child(user.uid).addValueEventListener( object :
            ValueEventListener {
            override fun onCancelled(p0: DatabaseError) {
            }

            override fun onDataChange(snapshot: DataSnapshot) {
                String name = (String) snapshot.child("Diary_Subject").getValue();
            }
}

или вы можете создать модель для хранения данных из dataSnapshot, например:

data class Subject(
  var Diary_Subject: String
)

mDatabase.child(user.uid).addValueEventListener( object :
            ValueEventListener {
            override fun onCancelled(p0: DatabaseError) {
            }

            override fun onDataChange(snapshot: DataSnapshot) {
                val subject = snapshot.getValue(Subject.class);
            }
}

Надеюсь, что это поможет!

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