2017-05-11 1 views
0

중첩 필드가 포함 된 실시간 데이터베이스의 구조가 있습니다. 어떻게 설정하고 데이터를 얻을 수있는 자바 클래스를 만들 수 있습니까?중첩 된 실시간 데이터베이스에 Java 클래스

This is my structure

+0

내보내기 json을 클릭하고 json을 제공 –

+0

완성 된 JSON을 추가했습니다. – Inacius

+0

그래서, 전체 구조에 대해 POJO를 만들거나 특정 요소를 원시로 추출하고 싶습니까? –

답변

0

난 당신 만이 settersgetters 공공 만드는 데 필요한 fileds를 선언하지만, 그것들을 설정하고 얻기 위해 한 당신의 Eventos 클래스에서 볼 수있다. 이 모양은 다음과 같습니다 :

public int getID_Evento() { 
    return ID_Evento; 
} 

public void setID_Evento(int ID_Evento) { 
    this.ID_Evento = ID_Evento; 
} 

public int getID_Usuario_Criou() { 
    return ID_Usuario_Criou; 
} 

public void setID_Usuario_Criou(int ID_Usuario_Criou) { 
    this.ID_Usuario_Criou = ID_Usuario_Criou; 
} 

이것은 첫 번째 2 개 필드의 예입니다. 다른 사람들에게는 같은 방식으로해야합니다. Android Studio을 사용하는 경우 Alt + Insert을 클릭하고 Getter and Setter을 선택한 다음 모든 입력란을 선택하십시오.

올바른 settersgetters을 얻으면 코드에서 사용할 수 있습니다. 보시다시피, 결국 우리는 당신의 DatabaseReference에 생성 된 객체를 추가 할 setValue()을 사용했다

Eventos eventos = new Eventos(); 
eventos.setID_Evento(ID_Evento); 
// and so on for the other fields 
yourReference.setValue(eventos); 

: 당신의 필드를 설정하려면이 코드를 사용하십시오. 당신이 새를 추가 할 필요가 POJO에 중첩 된 노드를 위해

Eventos eventos = dataSnapshot.getValue(Eventos.class); 
int ID_Evento = eventos.getID_Evento(); 

:

하면 올바른 DatabaseReferencelistener를 사용하고이 같은 DataSnapshot에서 데이터를 얻을 필요가 데이터를 얻으려면 Map 특정되는 이름이 같은 participantes : 공용 세터와 게터를 작성하는 것이 필요 해당 필드의 값을 설정하기 위해

Map<String, Map<String, String>> participantes = new HashMap<>(); 

. 실제로 코드의 값을 설정하려면 다음 코드를 사용하십시오.

Map<String, Map<String, String>> participantes = new HashMap<>(); 
Map<String, String> map = = new HashMap<>(); 
map.put(id_Usuario, "1"); 
map.put(vnv, "1"); 
map.put(vnv_data, "05/05/2017"); 
participantes.put(userEmail, map); 
yourRef.setValue(participantes); 

희망이 있습니다.

+0

Alex, 답을위한 thx, 클래스는 이미 중첩 된 필드를 제외하고 getters와 setter를 가지고 있습니다. 중첩 된 필드로 클래스를 어떻게 표시해야합니까? (나는 그 질문을 업데이트했다). – Inacius

+0

업데이트 된 답변을 참조하십시오. –