Я новичок в FIrebase, и у меня есть две проблемы с ним, которые могут быть связаны. Во-первых, при сохранении списка событий.
//creating event
TVEvent tvEvent = new TVEvent(etTitle.getText().toString());
User host = ResourceManager.getUser();
String date = etDate.getText().toString();
String location = etLocation.getText().toString();
TVSet tvset = ResourceManager.getUser().getTvSets().get(0);
Event ev = new Event(tvEvent, host, date, location, tvset);
ResourceManager.addEvent(ev);
mDatabase.child("events").child(host.getId()).setValue(ResourceManager.getEvents()); //getEvents() returns a list of events
Проблема в том, что у tvevent и tv есть больше атрибутов, чем у них. Когда я отлаживался, чтобы узнать, почему этот tvevent был создан со всеми его атрибутами, который был немного странным. На данный момент, однако, я не знаю, является ли это проблемой, поскольку я не могу получить tvset и tvvent из базы данных. Когда я делаю следующее, я получаю значение null.
mDatabase.child("events").addListenerForSingleValueEvent(
    new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            System.out.println("Cheking for events");
            //GenericTypeIndicator<List<Event>> t = new GenericTypeIndicator<List<Event>>() {};
            //List<Event> e = dataSnapshot.getValue(t);
            for (DataSnapshot messageSnapshot: dataSnapshot.getChildren()) {
                GenericTypeIndicator<List<Event>> t = new GenericTypeIndicator<List<Event>>() {};
                List<Event> list = messageSnapshot.getValue(t);
                if (list != null) {
                    for (Event ev : list) {
                        System.out.println("Event found");
                        ResourceManager.addEvent(ev);
                    }
                }
            }
        }
        @Override
        public void onCancelled(DatabaseError databaseError) {
        }
    });
Я не знаю, почему эти значения равны нулю, поскольку я вижу, что они не находятся в консоли firebase. Итак, в чем проблема?
@IgnoreExtraProperties
public class Event {
private TVEvent tvEvent;
private User host;
private Date date;
private String location;
private TVSet tvSet;
private List<User> attending;
public Event(){
}
public Event(TVEvent tvEvent, User host, String date, String location, TVSet tvset){
    this.tvSet = tvset;
    this.tvEvent = tvEvent;
    this.host = host;
    try {
        this.date = new SimpleDateFormat("dd/MM/yyyy").parse(date);
    } catch (ParseException e) {
        e.printStackTrace();
    }
    this.location = location;
    attending = new ArrayList<>();
}
public User getHost() {
    return host;
}
public String getLocation() {
    return location;
}
public TVSet getTVSet() {
    return tvSet;
}
public Date getDate() {
    return date;
}
public TVEvent getTVEvent() {
    return tvEvent;
}
public void addAttending(User user){
    attending.add(user);
}
public List<User> getAttending(){
    return attending;
}
}
Поскольку и TVSet, и TVEvent не получаются десериализованными, я отправлю только один из них:
@IgnoreExtraProperties
public class TVSet {
private String title;
private String imageFile;
//private Bitmap picture;
public TVSet(){
}
public TVSet(String title){
    this.title = title;
}
public TVSet(Bitmap picture){
    imageFile = compressImage(picture);
}
public void setTitle(String title){
    this.title = title;
}
public String getTitle() {
    return title;
}
private String compressImage(Bitmap image){
    ByteArrayOutputStream bYtE = new ByteArrayOutputStream();
    image.compress(Bitmap.CompressFormat.PNG, 100, bYtE);
    //image.recycle();
    byte[] byteArray = bYtE.toByteArray();
    String imageFile = Base64.encodeToString(byteArray, Base64.DEFAULT);
    return imageFile;
}
@Exclude
public Bitmap getImage() {
    byte[] decodedString = Base64.decode(imageFile, Base64.DEFAULT);
    Bitmap bitmap = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);
    return bitmap;
}
public String getImageFile(){
    return imageFile;
}
}
Извините за плохое форматирование. Любая помощь приветствуется.

