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

안드로이드 파이어베이스 리얼타임데이터베이스 질문드립니다.

0 추천

 

sns 비슷한걸 만들고있는데 서울지역스터디에 push로 게시물을 추가해서 타임스탬프로 다음과같이 게시물이 디비에저장됩니다.

게시물 댓글 기능을 구현하기위해서 파이어베이스리사이클러어댑터에 해당 게시물들이 저장되어있는데 해당 게시물을 클릭하면 해당 게시물의 push값을 알고싶고 그 하위에 child(comment)를 만들어 댓글을 저장할려고합니다.

그런데 해당 게시물의 push값을 어떻게 알고 가져올지를 모르겠습니다.. 방법좀 알려주시면 감사하겠습니다.

익명사용자 님이 2019년 5월 11일 질문

1개의 답변

0 추천
 
채택된 답변
FirebaseReference firebaseReference = database.getReference("studdytogether").child(seoulStudy);

firebaseReference.addListenerForSingleValueEvent(new ValueEventListener() {

@Override

public void onDataChange(DataSnapshot dataSnapshot) {

      for(DataSnapshot snapShot : dataSnapshot.getChildren()){

String pushKey = snapShot.getKey(); <----푸시로 생성된 키값들

      }

}
익명사용자 님이 2019년 5월 11일 답변
아 getKey라는걸 사용하면 되나보군요 감사합니다..
저 혹시 한가지 더 궁금한게있습니다.
 mSeoulDatabaseReference.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
            

                for (DataSnapshot dataSnapshot2 : dataSnapshot.getChildren()) {
              
                    StudyMessage studyMessage = dataSnapshot2.getValue(StudyMessage.class);

                    // [START_EXCLUDE]
                    // Update RecyclerView
                    mMessageList.add(studyMessage);
                    mMessageAdapter.notifyItemInserted(mMessageList.size() - 1);
                }


            }

            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {

            }
        });

이렇게 한 경우(SeoulDB는 SeoulCity를 참조하고있습니다.) 제가 저장한 StudyMessage클래스들이 받아지던데 제 상식으로는 이해가 안가는데,
원래 child(push한해쉬값) 으로 접근을 하고 getValue로 제가 저장한 StudyMessage를 받아올 수 있는거아닌가요?
근데 받아와져서 의문점이들아서 여쭤봅니다..
.
...