Я пытаюсь удалить документ и вложенные в него документы в коллекции внутри документа в Firestore в Firebase с помощью Angular. На данный момент я могу удалить указанный документ и коллекцию, но не без того, чтобы компилятор не выдал мне ошибку error TS2339: Property 'id' does not exist on type '{}'
. Код ошибки может быть правильным или неправильным, я, честно говоря, не знаю, так как мой код находит идентификатор, связанный с объектом, на который я смотрю. Это мой код:
testID: string;
private testDoc: AngularFirestoreDocument<Test>;
constructor(private db: AngularFirestore) { }
deleteDoc() {
console.log('Deleting test');
this.db.collection(`tests/${this.testID}/questions`, ref => ref.orderBy('order'))
.valueChanges().subscribe(questions => {
questions.map(question => {
this.db.doc(`tests/${this.testID}/questions/${question.id}`).delete()
.catch(error => {console.log(error); })
.then(() => console.log(`tests/${this.testID}/questions/${question.id}`));
});
});
this.testDoc.delete().catch(error => console.log(error));
}
Я также попытался передать 2 аргумента в функцию карты, но это просто вызывает ошибки в выполняемой функции вместо компилятора, что приводит к тому, что код вообще не работает (я мог бы передать здесь неправильную вещь).
Как я уже упоминал, мой код работает, но я определенно делаю что-то не так. Итак, мой вопрос: что я делаю не так, чтобы вызвать ошибку компиляции, и как мне избежать этого, убедившись, что функция по-прежнему работает? Надеюсь, кто-то поможет прояснить, что я здесь делаю неправильно.
Заранее спасибо.
* Edit, включил документ, который я просматриваю
export interface Question {
description: string;
order: number;
type: string;
id: string;
name: string;
options?: Object[];
radio_amount?: number;
current_chips?: Object[];
imageURL?: string;
}