본문 바로가기
삽질 일지

[Kotlin] Firestore에서 특정 문서 불러오기

by seoyamin 2022. 2. 9.

문제 상황

코틀린으로 안드로이드 개발을 하던 중, 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