728x90
 //전체 문서를 덮어쓰지 않고 문서의 일부 필드를 업데이트하려면 update() 메서드를 사용합니다.
                FirebaseFirestore.getInstance().collection("user").document(view.userSettingSendIdText.text.toString())
                    .update("userIp", view.userSettingUdpAddressText.text.toString())
                    .addOnSuccessListener {
                        Log.d(LOG2, "DocumentSnapshot successfully written!")
                        toast.cancel()
                        toast = Toast.makeText(getActivity(), "유저 정보 저장 완료", Toast.LENGTH_SHORT)
                        toast.setGravity(Gravity.CENTER, 0, 0)
                        toast.show()
                    }
                    .addOnFailureListener { e ->
                        //Log.d(LOG2, "Error writing document", e)
                        val str: String = e.message.toString()
                        Log.d(LOG2, "실패:${str}")
                        if (str.contains("NOT_FOUND")) {
                            toast.cancel()
                            toast = Toast.makeText(getActivity(), "유저 정보를 확인 하세요.", Toast.LENGTH_SHORT)
                            toast.setGravity(Gravity.CENTER, 0, 0)
                            toast.show()
                        }
                    }

 

 //서버에 업테이트할 항목을 담은 데이터 클래스
            data class UserInfo(
                var userCctvDescription : String? = null, // 사용자 CCTV 정보
                var userCctvId: String? = null, // 사용자 CCTV ID
                var userCctvPw: String? = null, // 사용자 CCTV PW
                var userRtsp: String? = null, // 사용자 RSTP 주소
            )

            val userInfo = UserInfo()

            userInfo.userCctvDescription = view.cctvDescriptionEditText.text.toString()
            userInfo.userCctvId = view.cctvIdEditText.text.toString()
            userInfo.userCctvPw = view.cctvPwEditText.text.toString()
            userInfo.userRtsp = view.rtspEditText.text.toString()

            //SetOptions.merge() 덮어쓰기 방지 하는 함수
            FirebaseFirestore.getInstance().collection("user").document(userInformData["userEmail"].toString()).set(userInfo, SetOptions.merge())
                .addOnSuccessListener { Log.d(LOG2, "DocumentSnapshot successfully written!") }
                .addOnFailureListener { e -> Log.w(LOG2, "Error writing document", e) }

안드로이드 코틀린 파이어 스토어 데이터 지우지 않고 수정 하는 함수

728x90

+ Recent posts