Как дождаться возврата данных из firebase?
У меня есть класс активность. В нем есть список типа User
class MainActivity : AppCompatActivity() {
var list: User? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
}
}
И есть класс в который у меня вынесены все операции с Firebase базой данных.
В этом классе есть список User, и есть функция которая заполняет этот список данными из Firebase и возвращает этот список.
class FirebaseOperations {
var list: User? = null
//Функция получения пользователя по ID
companion object{
fun getUserList(id: String){
db?.getReference("Users")?.child(id)?.addListenerForSingleValueEvent(object : ValueEventListener{
override fun onDataChange(snapshot: DataSnapshot) {
for(users in snapshot){
list.add(users.getValue(User::class.java))
}
}
override fun onCancelled(error: DatabaseError) {
}
})
return list
}
}
}
эту функция я вызываю в своей активности примерно так:
list = FirebaseOperations.getUserList()
Проблема в том что, запрос из Firebase выполняется асинхронно, и оператор return не ждет ответа от firebase и возвращает null
Как я могу дождаться пока firebase добавить все данные в мой список, и чтобы только после этого функция getUserList вернула уже заполненный список?
P.S Я хочу чтобы функция getUserList была именно в отдельном классе таком как FirebaseOperations