Ответы

Проблема с добавлением записей в firebase и Room в android-приложении

У меня есть класс со следующими конструкторами (прикрепляю скрин).

Однако при попытке создать экземпляр класса и записать его в вышеупомянутые базы данных, процессы то ли в Firebase, то ли в Room создают объект через пустой конструктор, и он никуда не записывается. При этом удалить пустой конструктор нельзя, т.к. Firebase его требует.
Методы, через которые обращаюсь к БД, выглядят так:

(во ViewModel)
public void addTask(String uid, String name, int color, LocalDate date, int sectionIndex) { MyTask myTask = new MyTask(null, uid, name, color, date, sectionIndex); AddNewTaskUseCase addNewTaskUseCase = new AddNewTaskUseCase(repo); addNewTaskUseCase.execute(myTask, () -> updateLists(date.toString())); }

(в репозитории)
public void insertTask(MyTask myTask, Runnable onInserted) { dataSource.insertTask(myTask) .addOnSuccessListener(aVoid -> { executor.execute(() -> { dao.insertTask(myTask); Log.d("ChronoSnap", "вызван insertTask"); if (onInserted != null){ new Handler(Looper.getMainLooper()).post(onInserted); Log.d("ChronoSnap", "в потоке"); } }); }) .addOnFailureListener(e -> { Log.e("ChronoSnap", "Ошибка при добавлении задачи в Firestore"); }); }

(в Dao)
@Insert(onConflict = OnConflictStrategy.REPLACE) void insertTask(MyTask myTask);

(при обращении к firestore)
public Task<Void> insertTask(MyTask myTask) { return FirebaseFirestore.getInstance() .collection("tasks") .document(myTask.getId()) .set(myTask); }


Совсем не понимаю как решить проблему, заранее благодарю за помощь.