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

파이어베이스에서 리스트값을 리스트로 가져오기

0 추천

파이어베이스에 message1이라는 배열이 있습니다.

private final ArrayList<String> message1 = new ArrayList<>()
//파이어베이스에서 데이타를 읽어올 경로
databaseReference= FirebaseDatabase.getInstance().getReference("message1");
databaseReference.addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
            String firemessage = snapshot.getValue().toString();    //문자열로 받기
            message1.add(firemessage);  //리스트에 추가
        }
    }
    @Override
    public void onCancelled(DatabaseError databaseError) {
        // Getting Post failed, log a message
    }
});

이렇게 구현해서 버튼을 클릭하면

textView.setText(message1.get(i));       

리스트에서 값을 하나씩 출력되게 하려고 합니다.

근데 지금은 message1의 1번 밖에 못 가져오고 있습니다..어떻게 하면 좋을까요ㅜㅜ도와주세요ㅜㅜ

 

디버깅 결과

 

개발개발자 (1,100 포인트) 님이 2021년 1월 13일 질문
개발개발자님이 2021년 1월 14일 수정
먼저 디버깅을 해보세요.  dataSnapshot에 값이 어떻게 들어오는지. 코드로 봐서는 dataSnapshot에는 첫번째 데이터만 들어오고 있는 것 같은데, 그렇다면 API 사용법이 잘못된 것이므로, 파이어베이스 API를 다시 확인하시고 다른 방법으로 해보셔야할 것 같아요.
제가 초급자라 그런데,,디버깅으로 값이 어떻게 들어오는지 확인하려면 어떻게 해야되나요..?
이게 말로 좀 설명 드리리가 좀 그래요. 안드로이드 스튜디오 화면을 보면서 해야 이해하기 쉽거든요. 구글에서 안드로이드 디버깅 이라고 검색하시면 검색결과가 엄청 많이 뜰거예요.
댓글 감사합니다. 디버깅 해봤습니다. 디버깅 결과를 게시물에 사진 첨부하였습니다!!
캡쳐한 사진이 잘 보이실진 모르겠는데,,message1배열에서 key0번 값밖에 가져오지 못하고 있습니다. 저는 message1 배열에 있는 key0번부터 끝까지 모든 값을 차례로 가져와서 message1리스트에 넣고 싶은데 어떻게 해야될까요ㅜㅜㅜ삽질 정말 많이 했는데 잘 모르겠습니다.....다시 한 번 매번 댓글 달아주시고 도움 주셔서 감사합니다

1개의 답변

0 추천

addValueEventListener -> addListenerForSingleValueEvent

변경해보세요~

덕스 (520 포인트) 님이 2021년 1월 16일 답변
답변감사합니다. 해봤는데 변하는게 없네요ㅜㅜ 수정사항이랑 추가자료 첨부해서 다시 질문 올렸습니다.. 여유 되시면 한 번 봐주시면 감사하겠습니다ㅜㅜ
...