마스터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번 밖에 못 가져오고 있습니다..어떻게 하면 좋을까요ㅜㅜ도와주세요ㅜ

디버깅 결과는 이렇게 나옵니다.

key값을 0번밖에 가져오지 못하고 있어요, 전 0번부터 끝까지 차례대로 가져오고 싶습니다.

 

 

 

 

개발개발자 (1,100 포인트) 님이 2021년 1월 16일 질문
첨부하신 디버깅 이미지가 많이 잘려서 제대로 안보이네요.

1개의 답변

0 추천
이전에 올린 스크린 샷보다는 낫네요.
첫 dataSnapshot의 key는 message1 맞고요.
value를 막아 놨는데, 텍스트는 막더라도 구조는 막혀 있으면 좀 그렇네요.
공개할 수 있는 같은 구조의 message2를 만들고 그걸로 작업해서 보여주세요

String firemessage = snapshot.getValue().toString();
브레이크 포인트에서 볼 부분은 snapshot의 구조가 서버랑 같나요?

그리고 브레이크 포인트가 잡힌 상태(위의 상태)에서
F8 (한줄씩 실행)을 통해서,
두번째 데이터는 잘가져오는지,
그리고 message1이라는 배열에 들어간 값들도 제대로 들어가는 것인지 확인해 주세요.

그리고 화면 캡쳐가 너무 탁하기 때문에
해당 변수를 오른쪽 클릭해서 Copy Value 하면 값을 다 복사할 수 있습니다.

스크린샷은 스크린 샷대로,
중요한 데이터는 Copy Value를 해서
실제 데이터를 보여 줘야 답변자들이 더 정확하게 문제를 파악합니다.

아마 제생각에는 F8로 진행하다 보면 스스로 문제가 뭔지 알게 될 듯 싶네요.
Will Kim (43,170 포인트) 님이 2021년 1월 16일 답변
...