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

FIrestore 문서의 ID 가져오는법

0 추천
프래그먼트안 리사이클러뷰에 FireStore에 저장된 데이터들을 받아왔습니다.

파이어스토어에 문서ID를 가져오는건 성공했는데
리사이클러뷰에 특정 item뷰 (리사이클러뷰에 나오는 리스트)를 클릭했을때 해당되는 문서ID를 가져오고 싶습니다.

 

어떻게 해야 할까요?
kiop (160 포인트) 님이 4월 7일 질문

1개의 답변

0 추천

"파이어스토어에 문서ID를 가져오는건 성공했는데"

라고 하셨으니, 화면에 보여주는 데이터에 문서ID를 저장해 놓으시고 아이템을 클릭하면 문서 ID를 알 수 있으므로,

이걸 가지고 처리하시면 됩니다. 코드로 만들면 대충 아래와 같이 될겁니다. 이미 관련 내용을 알고 계시니 해당 코드가 어떤 부분인지 금방 이해가 가시리라 생각합니다.

public class YourClass {
   private final String id;
   // 다른필드 추가
   // Constructor, getter 추가
}

// Adapter 아이템 클릭용 리스너
interface ItemClickListener {
    void onItemClicked(YourClass item);
}

// Adapter에 리스너 할당
adapter.setOnItemClickListener(item -> {
     System.out.println(item.getId() + " clicked!!");
});


// FireStore 에서 데이터 가져오기
// Firebase의  success콜백에서
List<YourClass> items = new ArrayList<>();

for (... doc in documents) {
   items.add(document.toObject(YourClass.class));
}
adapter.submitList(items);

 

참고로, 파이어베이스 문서의 toObject이라는 변환 함수가 존재하는데, 클래스에 id를 필드주고 이 함수를 사용하면, 자동으로  문서 ID를 해당 필드에 할당해 주었던 것 같아요.

spark (139,480 포인트) 님이 4월 8일 답변
spark님이 4월 8일 수정
...