1

에 따라 푸시 키를 가져 오기 : 나는 아이에 따라 푸시 키를 검색하기 위해 노력하고있어안드로이드 -이처럼 내 데이터가 모습입니다 아이 중포 기지

{ 
    "courses":{ 
    "Business":{ 
     "PushKey_1":{ 
       "courseC":"B1111", 
       "name":"Business Year 1" 
     }, 
     "PushKey_2":{ 
       "courseC":"B2222", 
       "name":"Business Year 2" 
     }, 
    } 
    } 
} 

. 코드는 지금 노력하고있어 :

String testCourseC = "B2222"; 
String showCourseKey; 

     DatabaseReference mRef = FirebaseDatabase.getInstance().getReference().child("courses").child("Business"); 
     mRef.addValueEventListener(new ValueEventListener() { 
      @Override 
      public void onDataChange(DataSnapshot dataSnapshot) { 
       for (DataSnapshot ds : dataSnapshot.getChildren()){ 
        CourseDetails data = ds.getValue(CourseDetails.class); 
        String compareC = data.getCourseC(); 
        if (compareC.equals(testCourseC)){ 
         showCourseKey = dataSnapshot.getKey(); 
        } 
       } 
      } 

      @Override 
      public void onCancelled(DatabaseError databaseError) { 

      } 
     }); 

     textview1.setText(showCourseKey); 

CourseDetails 클래스 :

public class CourseDetails { 
    private String courseC; 
    private String name; 

    public CourseDetails() { 
    } 

    public CourseDetails(String courseC, String name) { 
     this.courseC = courseC; 
     this.name = name; 
    } 

    public String getCourseC() { 
     return courseC; 
    } 

    public void setCourseC(String courseC) { 
     this.courseC = courseC; 
    } 

    public String getName() { 
     return name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 
} 

textview1이 PushKey_2를 표시해야합니다. 코드가 잘못 되었다면 textview1이 "코스"를 표시하지 않아야합니까?

위 코드에서 NullPointerException이 발생했습니다. 설명서를 읽고 유사한 질문을했지만 여전히 잘못되었습니다. 제 바보 같은 질문에 신경 쓰지 마십시오.

답변

1

코드를 실행했지만 NullPointerException을 얻지 마십시오. 스택 추적을 게시하십시오.

오류가있는 부분을 지적하겠습니다.

이 :

showCourseKey = dataSnapshot.getKey(); 

가되어야한다 :

내 데이터베이스의 데이터를 출력하려고 할 때 난 그냥 실현
showCourseKey = ds.getKey(); 
+0

, 빈 데이터가 반환. 그게 내가'NullPointerException'을 얻은 이유라고 생각합니다. 내 다른 질문 [여기] (http://stackoverflow.com/questions/38814397/firebase-retrieve-data-in-android)을 참조하십시오. 감사 –

관련 문제