Не удалось получить данные из базы данных Firebase Realtime

Я пытаюсь получить имя моего пользователя и здороваться с ним/ней всякий раз, когда приложение открывается. Но я не могу получить данные для определенного пользователя на основе его 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) {

           }
       })
0
0
285
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы уже прикрепляете прослушиватель к свойству 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)
     }

Итак, не могли бы вы указать мне, как правильно получить значение имени?

VoidHemang 14.05.2019 05:25

Это то, что должен делать код в моем ответе. Что для вас становится name, когда вы его запускаете?

Frank van Puffelen 14.05.2019 05:45

Другие вопросы по теме