因此,我尝试从我的数据存储区中的 Amplify in android 中获取 MutableLiveData 列表,这次使用存储库而不是将其放入视图模型中以尊重 MVVM 架构。但是,不会执行数据的获取。
我的日志显示“之前”日志,仅此而已。我有一个数据存储监听器,当数据准备好被查询并且我有一个稳定的连接时,它会给出好的,所以不是那样的。
这是我的 getAlldata 函数:
fun getUserFaves():MutableLiveData<ArrayList<InterviewDB>>{
val liveDataList=MutableLiveData<ArrayList<InterviewDB>>()
var listOfIds:List<String> = ArrayList()
Amplify.DataStore.query(UserSettings::class.java, Where.id(Amplify.Auth.currentUser.userId),{
Log.i("FUSERRepoIN","before while ")
while (it.hasNext()){
val user=it.next()
Log.i("FUSERRepoIN",user.userFavorites)
listOfIds=user.userFavorites.split("@@@")
Log.i("LISTRepoIN",listOfIds.size.toString())
}
}
, {
Log.e("FAVESREPO",it.localizedMessage)
})
Log.i("FavesRepoIN",listOfIds.size.toString())
var interviews: ArrayList<InterviewDB> = ArrayList()
listOfIds.forEach {
Amplify.DataStore.query(InterviewDB::class.java,Where.matches(InterviewDB.ID.eq(it)),{matches->
matches.forEach { interview->
interviews.add(interview)
Log.i("AddingSize",interviews.size.toString())
}
},{
Log.i("oops",it.localizedMessage)
})
}
liveDataList.value=interviews
return liveDataList
}
谢谢你。