Я пытаюсь создать последовательность вызовов. Задача 1 должна быть вызвана первой, а извлеченные данные должны использоваться в задаче 2.
Мой вопрос: следующий код запрашивает 3 раза пожарную? Это дорогое решение? Или я просто должен сделать вложенный вызов task2 внутри ответа task1?
Я пытаюсь найти способ, который эффективнее использовать. Спасибо.
Задачи:
val task1 = Firestore.getUserDocument(userId).get()
val task2 = Firestore.getGlobalFields().get()
Активность:
task1.addOnSuccessListener {
it.toObject(User::class.java)?.let { user ->
this.user = user
til_name.setText(user.firstName)
til_surname.setText(user.lastName)
}
}.addOnFailureListener {
it.printStackTrace()
}
val allTask = Tasks.whenAll(task1, task2)
allTask.addOnSuccessListener { _ ->
task2.addOnSuccessListener {
val busStops = it.data?.get(BUS_STOPS) as ArrayList<String>
setBusStopAdapter(busStops)
hideProgressDialog()
}
}.addOnFailureListener {
it.printStackTrace()
hideProgressDialog()
}