Я пытаюсь получить имя моего пользователя и здороваться с ним/ней всякий раз, когда приложение открывается. Но я не могу получить данные для определенного пользователя на основе его uid. Тост никогда не появляется, когда я запускаю приложение.
Структура базы данных
"Users" : {
"SeLT0H7Qz9aWUSIpXwbCquiLBkA2" : {
"age" : 20,
"email" : "[email protected]",
"name" : "xyz"
}
}
Код
ref.child("Users").child(uid).child("name").addValueEventListener(object: ValueEventListener{
override fun onDataChange(ds: DataSnapshot) {
name = (ds.child("name").getValue()).toString()
Toast.makeText(baseContext , "Hello $name",Toast.LENGTH_SHORT)
}
override fun onCancelled(databaseError: DatabaseError) {
}
})
Вы уже прикрепляете прослушиватель к свойству name конкретного пользователя, поэтому не следует получать свойство name в onDataChange:
ref.child("Users").child(uid).child("name").addValueEventListener(object: ValueEventListener{
override fun onDataChange(ds: DataSnapshot) {
name = ds.getValue(String::class.java)
Toast.makeText(baseContext , "Hello $name", Toast.LENGTH_SHORT)
}
Это то, что должен делать код в моем ответе. Что для вас становится name, когда вы его запускаете?
Итак, не могли бы вы указать мне, как правильно получить значение имени?