작성
·
186
0
'내가 좋아요한 유저 정보 보기'강의에서는
override fun onCreate(savedInstanceState: Bundle?) {
getUserDataList()
getMyLikeList()
}
이런식으로 썼는데 저는 똑같이해보니까 getUserDataList()
함수 안에 있는 아래 코드에서 likeUserList
가 비동기때문에 아직 들어오지 않았어서 에러가 났었습니다
override fun onDataChange(dataSnapshot: DataSnapshot) {
for (dataModel in dataSnapshot.children) {
val user = dataModel.getValue(UserDataModel::class.java)!!
if (likeUserList.contains(user.uid)) {
userDataModel.add(dataModel.getValue(UserDataModel::class.java)!!)
}
}
그래서 아래처럼 getMyLikeList()
가 모두 돈 후 likeUserList
가 다 채워지면 getUserDataList()
를 그때 실행시키는 방식으로 해결했습니다.
override fun onCreate(savedInstanceState: Bundle?) {
// getUserDataList() 삭제함
getMyLikeList()
}
private fun getMyLikeList() {
FirebaseRef.userLikeRef.child(FirebaseAuthUtils.getUid()).addValueEventListener(object : ValueEventListener {
override fun onDataChange(dataSnapshot: DataSnapshot) {
for (dataModel in dataSnapshot.children) {
likeUserList.add(dataModel.key.toString())
}
getUserDataList() // 추가함
}
override fun onCancelled(error: DatabaseError) {
}
})
}
답변 1
1
비동기때문에 아직 들어오지 않았어서 에러가 났었습니다
라고 말씀해주셨는데 혹시 에러가 난 코드를 공유해주실 수 있으실까요?
저도 한번 확인해보겠습니다!
코드를 깃허브에 업데이트 중이신 것 같은데, 에러가 났을 때의 코드를 공유해주시면 살펴볼게요~