반응형
공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!! 포스팅 내용이 찾아주신 분들께 도움이 되길 바라며 더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^
|
안드로이드에서 Firebase의 FirebaseFirestore를 사용할 때
받은 데이터를 객체로 바로 변환해서 받을 수 있습니다.
코틀린으로 개발 시 아래 코드처럼 받을 수 있는데요.
PatientInfo 객체로 받는 코드입니다.
dr = adminApp.ff.collection(adminApp.CAREGIVER).document(cId).collection(adminApp.PATIENTS).document(pId)
val a = dr.path
Log.e("a", a)
dr.get().addOnSuccessListener {
val patientInfo = it.toObject(PatientInfo::class.java)
Log.e("patientname", patientInfo!!.name)
val date = Date()
bottomTab(date, patientInfo)
}
PatientInfo는 data class 입니다.
data class PatientInfo(
val age: String,
val bodies: Int,
val careDocs: String,
val careName: String,
val drugs: String,
val gender: String,
val id: String,
val imageUrl: String,
val meals: String,
val name: String,
val room: String,
val sleeps: Int
)
이런 데이터 클래스인데요.
이렇게 사용하게 되면
no argument constructor 어쩌구하면서 에러가 발생합니다.
그리고 사용하려하면 NullPointerException 이 발생합니다.
해결방법은 간단한데요.
데이터 클래스에 초기값들을 주면 됩니다.
예를 들어 문자열은 ""으로 정수형은 0으로 실수형은 0.0f, or 0.0으로
data class PatientInfo(
val age: String = "",
val bodies: Int = 0,
val careDocs: String = "",
val careName: String = "",
val drugs: String = "",
val gender: String = "",
val id: String = "",
val imageUrl: String = "",
val meals: String = "",
val name: String = "",
val room: String = "",
val sleeps: Int = 0
)
위처럼요.
이렇게 하면 toObject를 사용해서 데이터를 객체로 받을 수 있습니다.
이상입니다.
반응형
'안드로이드' 카테고리의 다른 글
안드로이드 주간 달력을 만들어보자!! Android Week Calendar (10) | 2019.02.12 |
---|---|
안드로이드 커스텀뷰 만들기 android customView (0) | 2019.02.07 |
안드로이드 Bundle 에 Object 객체 보내는 방법 putSerializable, Bundle, setArguments, fragment (0) | 2019.01.30 |
안드로이드 VIewpager swipe disable Viewpager 스와이프 막기 (1) | 2019.01.29 |
안드로이드 코틀린 익명 구현 객체 선언하기 (0) | 2019.01.29 |