2016-12-17 2 views
0

Я пытаюсь проанализировать данные базы данных firebase. позвольте мне показать структуру базы данных: enter image description hereКак получить узел внутри основного узла базы данных Firebase?

, как вы видите, есть узел называется сессия и содержат некоторые объекты, есть и другой узел внутри каждый объект сеанса под названием сообщения, нет сообщений узла иногда. У меня нет проблем с получением объектов whiteout message node, у меня проблема, когда я хочу разбирать объекты с сообщениями.

это мой сессии класс:

public class Items_Sessions implements Serializable { 

public String address; 
public String creator; 
public String date; 
public String description; 
public int duration; 
public double latitude; 
public double longitude; 
public int margin; 
public String subject; 
public Items_Messages messages; 

public String sessionID; 
public String sessionInviteStatus="pending"; 

public Items_Sessions(){} 



public Items_Sessions(String address,String creator,String date,String description,int duration,double lat,double longitude,int margin, 
         String subject){ 
    this.address = address; 
    this.creator = creator; 
    this.date = date; 
    this.description = description; 
    this.duration = duration; 
    this.latitude = lat; 
    this.longitude = longitude; 
    this.margin = margin; 
    this.subject = subject; 

} 

public Items_Sessions(String address,String creator,String date,String description,int duration,double lat,double longitude,int margin, 
         Items_Messages messages,String subject){ 
    this.address = address; 
    this.creator = creator; 
    this.date = date; 
    this.description = description; 
    this.duration = duration; 
    this.latitude = lat; 
    this.longitude = longitude; 
    this.margin = margin; 
    this.subject = subject; 
    this.messages = messages; 

} 

}

и это мой сообщения класс:

public class Items_Messages { 

public String senderid; 
public String sendername; 
public String text; 


public Items_Messages(){} 

public Items_Messages(String id,String name,String text){ 
    this.senderid = id; 
    this.sendername = name; 
    this.text = text; 
} 

}

вот как я получаю данные:

mRef = mDB.getReference("sessions"); 
mRef.addValueEventListener(new ValueEventListener() { 
     @Override 
     public void onDataChange(DataSnapshot dataSnapshot) { 
      List<Items_Sessions> mSessionsItems = new ArrayList<>(); 
      for (DataSnapshot postSnapshot: dataSnapshot.getChildren()) { 
       try { 

         Items_Sessions session = postSnapshot.getValue(Items_Sessions.class); 
         session.sessionID = postSnapshot.getKey(); 
         if (session.creator.equalsIgnoreCase(mAuth.getCurrentUser().getUid())) 
          mSessionsItems.add(session); 

       }catch (Exception e){ 
        Log.i("XX",e.toString()); 
       } 


      } 

, как я уже говорил нет никаких проблем на объектах без сообщений, однако, когда есть сообщения узла я получаю эту ошибку:

No setter/field for -KZCmBfXzYFJR2HcjMrO found on class ir.srico.locshare.items.Items_Messages 

как я могу решить проблему?

ответ

1

Я считаю, что ваша messages недвижимость в Items_Sessions необходимо изменить, чтобы:

Map<String, Items_Messages> messages; 
+0

Большое спасибо! @John –

Смежные вопросы