문제 상황
코틀린으로 안드로이드 개발을 하던 중, Firestore에서 특정 document를 불러와서 로컬의 객체에 저장하고자 하였다.
그러나 Firebase 공식 문서대로 코드를 작성하니 document.data 부분에 자꾸 'unsolved'되었다는 에러가 발생하였다. 또한 document의 각 field를 따로 불러오고 싶은데, 어떻게 코드를 작성해야 하는지 헤맸다.
val docRef = db.collection("AndroidUser").document(uid)
docRef.get()
.addOnSuccessListener { document ->
if (document != null) {
Log.d(TAG, "DocumentSnapshot data: ${document.data}")
} else {
Log.d(TAG, "No such document")
}
}
.addOnFailureListener { exception ->
Log.d(TAG, "get failed with ", exception)
}
해결 방법
document가 아닌, documentSnapshot을 이용하여 받아온 후, .result["field"] 를 이용하면 각 필드의 데이터를 따로 이용할 수 있다.
val docRef = db.collection("AndroidUser").document(uid)
docRef.get().addOnCompleteListener { snapshot ->
if(snapshot != null) {
val currentUser : CurrentUser = CurrentUser(
snapshot.result["uid"].toString(),
snapshot.result["email"].toString(),
snapshot.result["name"].toString(),
snapshot.result["fcmToken"].toString()
)
}
}
'삽질 일지' 카테고리의 다른 글
[Github] add -A opensdf 에러 해결 (0) | 2022.05.03 |
---|---|
[Eclipse] 폴더 통째로 불러오기 (import) (0) | 2021.07.29 |