Как добавить значение в массив объектов внутри объекта FireStore - PullRequest
0 голосов
/ 25 октября 2019

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

Я попробовал этот код ниже:

db.collection(Constants.TASKLIST).document(uid)
    .update("subTasks", FieldValue.arrayUnion(subTask));

структура данных

http://www.up2me.co.il/v.php?file=2873228.png

этомой объект задачи, задача и подзадача совпадают

открытый класс Task реализует Serializable {

private String description;
private String deadline;
private ArrayList<Task> subTasks;

public Task(String description, String deadline) {

    this.description = description;
    this.deadline = deadline;
    this.subTasks = new ArrayList<>();
}

public String getDeadline() {
    return deadline;
}

public String getDescription() {
    return description;
}

public ArrayList<Task> getSubTasks() {
    return subTasks;
}

public void setSubTasks(ArrayList<Task> subTasks) {
    this.subTasks = subTasks;
}

public Task(String description) {
    this.description = description;
}

public Task() {}

}

, но выдает следующую ошибку:

Неверные данные. Неподдерживаемый тип:

1 Ответ

0 голосов
/ 29 октября 2019

Ваш ArrayList содержит объекты типа Task, если я правильно понимаю. Firestore поддерживает только определенное количество типов данных, и это не похоже на один из них. Здесь - это список элементов, которые вы можете сохранить в базе данных firestore.

что вы можете сделать, например, сохранить задачу как ссылку или упростить ее, просто сохранив идентификаторыдокументов в виде строк в вашем массиве.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...