Я пытаюсь переместить документ из одной коллекции в другую, используя AngularFirestore.
В конце концов, через некоторое время я нашел рабочее решение:
// Subscribing to original document to get data
this.afs.collection('boards').doc(this.boardId)
.collection('categories').doc(this.categoryId)
.collection('taskList').doc(id)
.valueChanges().subscribe((task: Task) => {
// Adding a copy of document into desired category
this.afs.collection('boards').doc(this.boardId)
.collection('categories').doc('doneList')
.collection('taskList').doc(id)
.set({name: task.name, description: task.description, authorId: task.authorId, creationDate: task.creationDate,
lastEditorId: task.lastEditorId, lastEditDate: task.lastEditDate,
isApproved: taskApproved, points: task.points, completitorId: this.userId, completitionDate: new Date()});
});
// Deleting task in original category
this.afs.collection('boards').doc(this.boardId)
.collection('categories').doc(this.categoryId)
.collection('taskList').doc(id).delete();
И оно работает, проблема в том, что при удалении исходного документа выдается ошибка:
"ERROR TypeError: Cannot read property 'name' of undefined"
.
Я уверен, что это вызвано удалением подписанного документа, поэтому я пытался отменить его различными способами, использовать функцию then()
для обработки удаления и некоторые другие. Пока ничего не помогло.
Как мне правильно с этим справиться?