마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

파이어베이스 관련 질문드립니다. 도와주세요ㅠㅠ

0 추천

 

안녕하세요 정말 왜 NULL 에러가 뜨는지 모르겠어서 도움을 요청하고자 질문드립니다...채팅관련 개발도중 

나와 대화중인 상대의 UID를 가져와서 그 회원과의 대화 채팅방을 화면에 뿌려주려고 의도한 것인데요

보시다시피 NULL에러가 떠서 정말 난감하네요...토스트 메시지 확인결과 destinationUid 변수값에는 확실히 상대의 UID가 들어가있고 파이어베이스에도 해당 UID키값이 존재합니다. 당연히 users키 밑에 존재하고 있구요 왜 NULL에러가 뜨는지 정말 모르겠네요..도움을 주시면 정말 감사하겠습니다!

익명사용자 님이 2019년 5월 4일 질문
아 제가 에러코드 라인을 깜빡하고 말씀안드린거 같은데 myRef.child("users").child(destinationUid).addListenerForSingleValueEvent(new ValueEventListener()  이부분에서 오류가 발생합니다.

1개의 답변

0 추천
 
채택된 답변
destinationUid가 대화 상대의 Uid고 혹시 그값을 다른 리스너에서 받아서 전역변수로 선언하고 담으신것인가요? 혹시 맞다면, null뜨는게 맞을것같아요. 비동기 방식이라 값을 받아오는 리스너 두개가 있다고 하면 두 리스너로 받아오는 값은 같은시점에 값을 가져오지 않아요. 가장 쉬운 방법으로는 Uid 받아오는 리스너안에서 위의 리스너를 넣어서 해보세요.
익명사용자 님이 2019년 5월 4일 답변
안녕하세요~우선 답변정말 감사드립니다. 제가 아직 학생이고 초보라서 말씀하신걸 전부 이해하지는 못했어요 근데 null뜨는게 맞다고 하셨는데 그럼 애초에 저기 위에보시면 Toast메시지 출력하는 코드에서 메시지값이 출력되면 안되는거 아닌가요??? destinationUid값이 제대로 메시지값으로 나오더라구요
혹시 저 destinationUid를 어디서 받아오는지 코드를 볼 수 있을까요? 말씀하신대로 토스트가 찍힌다면 다른곳 문제일수도 있겠네요. 저도 써본지가 꽤되서 ㅠㅠ. 오류메시지는 참조위치에 들어가야할 경로값을 못받을때 뜨는 오류는 맞거든요.
안녕하세요 댓글을 제가 너무 늦게달았네요 디버깅하면서 다시 찾아봤는데 원인을 알게되어서 해결했어요!!! 답변해주셔서 정말 감사합니다ㅎㅎ
해결하셨다니 다행입니다~!
...