Как отметил Сэм Стерн в своем ответе, лучше всего создать представление для каждого класса в отдельности. Я напишу вам соответствующие классы в Котлине.
Это класс User
:
class User (
val firstName: String = "",
val lastName: String = "",
val userLocation: UserLocation? = null
)
А это UserLocation
класс:
class UserLocation (
val lat: Int = 0,
val lng: Int = 0
)
, чтобы запросить этого пользователя 1332 и привести его к объекту User.class
Пожалуйста, используйте следующие строки кода:
val uid = FirebaseAuth.getInstance().currentUser!!.uid
val rootRef = FirebaseDatabase.getInstance().reference
val uidRef = rootRef.child("users").child(uid)
val valueEventListener = object : ValueEventListener {
override fun onDataChange(dataSnapshot: DataSnapshot) {
val user = dataSnapshot.getValue(User::class.java)
Log.d(TAG, "Lat/Lng: " + user!!.userLocation!!.lat + ", " + user.userLocation!!.lng);
}
override fun onCancelled(databaseError: DatabaseError) {
Log.d(TAG, databaseError.message) //Don't ignore errors!
}
}
uidRef.addListenerForSingleValueEvent(valueEventListener)
В котором uid
должен содержать значение типа 131232
. Вывод в вашем logcat будет:
Lat/Lng: 15.2512312, -12.1512321
Таким же образом вы можете получить: user!!.firstName
и user!!.lastName
.