Сохранение вложенных объектов в базе данных - PullRequest
0 голосов
/ 21 февраля 2020

Я использую Firebase в качестве базы данных для моего Android проекта. В этом проекте у меня есть объект Event, содержащий объект mCalendar, который является датой типа «Календарь».

 mOriginalEvent = new Event(
            id,
            rawTitle.isEmpty() ? null : rawTitle,
            mCalendar,
            mColor,
            mIsCompleteCheckBox.isChecked()
    );

Я пробовал это, но это не работает.

FirebaseDatabase.getInstance().getReference("Events").child(id).setValue(mOriginalEvent);

при вставке событий происходит сбой Так как я могу сохранить эти данные в firebase?

......

    public Event(String id, String title, Calendar date, int color, boolean isCompleted) {
        mID = id;
        mTitle = title;
        mDate = date;
        mColor = color;
        this.isCompleted = isCompleted;
    }

    public String getID() {
        return mID;
    }

    public String getTitle() {
        return mTitle;
    }

    public Calendar getDate() {
        return mDate;
    }

    public int getColor() {
        return mColor;
    }

    public boolean isCompleted() {
        return isCompleted;
    }

    protected Event(Parcel in) {
        mID = in.readString();
        mTitle = in.readString();
        mColor = in.readInt();
        mDate = (Calendar) in.readSerializable();
        isCompleted = in.readByte() != 0;
    }

    @Override
    public void writeToParcel(Parcel dest, int flags) {
        dest.writeString(mID);
        dest.writeString(mTitle);
        dest.writeInt(mColor);
        dest.writeSerializable(mDate);
        dest.writeByte((byte) (isCompleted ? 1 : 0));

    }

    @Override
    public int describeContents() {
        return 0;
    }

    public static final Creator<Event> CREATOR = new Creator<Event>() {
        @Override
        public Event createFromParcel(Parcel in) {
            return new Event(in);
        }

        @Override
        public Event[] newArray(int size) {
            return new Event[size];
        }
    };
}

.....................

...