• 카테고리

    질문 & 답변
  • 세부 분야

    모바일 앱 개발

  • 해결 여부

    해결됨

Fragment UserViewFragment{755083c (97350660-0d15-4791-b814-9fd04e9c5cc3)} not attached to a context 오류문의

20.09.28 15:36 작성 조회수 194

2

밑에 써 주신 분이 있지만 정확한 답변을 듣지 못해 제가 다시 질문글을 올립니다.

팔로우을 하고 본인 account 프레그먼트에 가서 확인한 다음 다시 팔로우를 취소하게 되면 팔로우는 취소 되지만 어플이 크러시가 납니다.

account 뿐만 아니라 다른 프레그먼트들로 이동한 후 팔로우를 취소했을 시에도 똑같은 반응이 나오는데 어떻게 해결해야 하나요??

답변 7

·

답변을 작성해보세요.

1

저는

override fun onDestroy() {
super.onDestroy()
registration!!.remove()
}

이렇게 사용하고 있습니다~

액티비티나 프래그먼트의 생애주기에 따라 화면이 사라지는 부분에서 remove를 해주면 됩니다

registration은

var registration: ListenerRegistration? = null

이렇게 전역으로 선언하고 스냅샷으로 사용하면 됩니다

registration = firestore!!.collection("reunions").document(reunionUid).addSnapshotListener { value, error ->
if (value == null) return@addSnapshotListener
reunionDTO = value.toObject(ReunionDTO::class.java)!
}

1

JaeChul Lee님의 프로필

JaeChul Lee

2021.02.22

저도 같은 오류가 나는데

어디서 뭘 어떻게 remove 시켜줘야하는건지

도통 모르겠네요 ㅜㅜ

코드로 좀 알려주시면 정말 감사하겠습니다~!!

1

remove은 Activity 생명주기에 맞춰줘서 주면 됩니다. Remove코드를 onStop에 넣어주고 읽어주는 Snapshot 코드를 onStart에 넣어주면 됩니다.

1

그 이유는 디비를 감시하는 remove를 통해서 스냅삿을 꺼줘야 합니다.

https://firebase.google.com/docs/firestore/query-data/listen#kotlin+ktx_4 링크 참고하세요

0

JaeChul Lee님의 프로필

JaeChul Lee

2021.02.22

와우~ 김지능쓰님 정말 감사합니다~!

이제 잘 되네요~ ^0^

0

감사합니다!

0

어느 부분에서 remove를 시켜주어야 하는 건가요??