1. 코루틴을 이용한 리턴
1) 뷰모델에서
suspend fun getAllTemplateSize(): Int = withContext(Dispatchers.IO) {
val list = firebaseRepo.getAllTemplate(firebaseRepo.getUser())
list.size
}
신기하게도 =withContext(Dispatchers.IO) 는 마지막 줄이 return을 해준다.
=withContext()를 사용
2) 액티비티에서
CoroutineScope(Dispatchers.Main).launch {
if (isFirstLogin()) {
toMainActivity()
} else {
toTemplateActivity()
}
}
private suspend fun isFirstLogin(): Boolean {
val data = viewModel.getAllTemplateSize()
return data > 0
}
2. firebase 삭제
템플릿 삭제 시 어떻게 firebase를 조정해주면 될까 고민이 되었다.
생각해보니 firebase는 경로상의 데이터가 없으면 해당 트리가 스스로 삭제된다
그렇다면 템플릿 삭제 시 해당 템플릿 경로상의 모든 데이터를 삭제하면 되는 것이다!
참고 사이트
https://developer.android.com/kotlin/coroutines-adv?hl=ko
Kotlin 코루틴으로 앱 성능 향상 | Android 개발자 | Android Developers
Kotlin 코루틴으로 앱 성능 향상 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. Kotlin 코루틴을 사용하면 네트워크 호출이나 디스크 작업과 같은 장기 실행 작
developer.android.com
'개발노트 > Kotlin' 카테고리의 다른 글
파이널 프로젝트 3주차 2일 swith map (0) | 2023.10.24 |
---|---|
파이널 프로젝트 2주차 5일 (0) | 2023.10.20 |
파이널 프로젝트 2주차 2일 (0) | 2023.10.17 |
파이널프로젝트 2주차 1일차 (0) | 2023.10.16 |
파이널프로젝트 1주차 7 firebase+viewmodel/livedata (0) | 2023.10.15 |