Я вызываю метод getFavorite
для получения данных из класса базы данных в Activity. Но это не ждет onCompleteListener
. Итак, список пуст. Что мне делать?
GetMovieActivity.java
private fun getPhotoListFromApi() {
val apiService = ApiClient.getRetrofitInstance().create(ApiService::class.java)
var list = ArrayList<MovieDetailsResponse>()
var db = Database()
db.getFavorite()
for (id in db.moviesID)
{
apiService.getMovieDetails(
id.toString().toInt(),
"922df43f1a304aca901feb9728b01943",
Locale.getDefault().language + "-" + Locale.getDefault().country)
.enqueue(object : Callback<MovieDetailsResponse> {
override fun onFailure(call: Call<MovieDetailsResponse>, t: Throwable) {
}
override fun onResponse(call: Call<MovieDetailsResponse>, response: Response<MovieDetailsResponse>) {
response.body()?.let { it ->
list.add(it)
}
}
})
}
adapter.setList((list as List<MovieListItem>?)!!)
}
Database.kt
fun getFavorite()
{
val dr = db.collection("Favorites").document(mAuth!!.uid) as DocumentReference
dr.get().addOnCompleteListener { task: Task<DocumentSnapshot> ->
if(task.isSuccessful)
{
moviesMap = task.result.data!!
moviesID = moviesMap.get("movies") as ArrayList<Any>
}
}
}