[android/kotlin]Cloud Firestore로 데이터 가져오기

남윤희·2023년 10월 13일
0

kotlin

목록 보기
16/25

Firestore에 저장된 데이터를 검색하는 방법

1. get메서드를 호출하여 데이터를 한 번 가져온다.

binding.button.setOnClickListener {
            db.collection("hello")
                .get()
                .addOnSuccessListener { result ->
                    for (i in result) {
                        val value = i.data.toString()
                        txt1.text = value
                        Log.d(TAG, "${i.id} => ${i.data}")
                    }
                }
                .addOnFailureListener {
                    Log.w(TAG, "Error getting documents.")
                }
        }

일단은 받아 와 진다.

  • 응용으로 데이터에 조건문을 걸어 검색해보자
binding.button.setOnClickListener {

            val txt1 = binding.textView
            val email = binding.email.text.toString()

            db.collection("hello")
                .get()
                .addOnCompleteListener { task ->
                    if (task.isSuccessful) {
                        for (i in task.result) {
                            val dataMap = i.data
                            if (dataMap["email"] == email) {
                                var emailFromFirestore = dataMap["email"].toString()
                                var nicknameFromFirestore = dataMap["nickName"].toString()

                                if (emailFromFirestore.isEmpty()) {
                                    emailFromFirestore = "No email found"
                                }

                                if (nicknameFromFirestore.isEmpty()) {
                                    nicknameFromFirestore = "No nickname found"
                                }

                                txt1.text =
                                    "Email: $emailFromFirestore, Nickname: $nicknameFromFirestore"
                            }
                        }

                    }
                }
                .addOnFailureListener {
                    Log.w(TAG, "Error getting documents.")
                }
        }

2. 데이터 변경 이벤트를 수신하는 리스너를 설정한다.

(리스너를 설정하면 Cloud Firestore는 리스너에 데이터의 초기 스냅샷을 전송한 후 문서가 변경될 때마다 다른 스냅샷을 전송한다.

3. 데이터 번들을 통해 외부 소스에서 Firestore 스냅샷 데이터를 일괄 로드한다.

참고 firestore공식문서
recyclerView 불러오기

profile
안드로이드 주니어 개발자

0개의 댓글