Ich versuche, ein Dokument und seine verschachtelten Dokumente in einer Sammlung innerhalb des Dokuments in Firestore in Firebase mit Angular zu löschen. Im Moment kann ich das Dokument und die Sammlung löschen, aber nicht, ohne dass der Compiler einen Fehler auf mich wirft (error TS2339: Property 'id' does not exist on type '{}'
). Der Fehlercode könnte richtig oder falsch sein, ich weiß es ehrlich gesagt nicht, da mein Code die ID findet, die mit dem Objekt verknüpft ist, das ich gerade betrachte. Dies ist mein Code:Löschen von Dokumenten in einer Sammlung mit Angular in Firestore
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));
}
ich versucht habe auch zwei Argumente in der Karte Funktion zu übergeben, aber das wirft nur Fehler in der ausgeführten Funktion anstelle des Compilers, damit der Code machte überhaupt nicht (ich könnte pass hier nicht das Richtige auf).
Wie ich bereits erwähnt habe, funktioniert mein Code, aber ich mache definitiv etwas falsch. Meine Frage ist also, was mache ich falsch, um einen Kompilierungsfehler auszulösen und wie vermeide ich das, während ich sicherstelle, dass die Funktion immer noch funktioniert? Hoffe, jemand kann helfen zu klären, was ich hier falsch mache.
Vielen Dank im Voraus.
* Edit, das Dokument enthalten Ich betrachte
export interface Question {
description: string;
order: number;
type: string;
id: string;
name: string;
options?: Object[];
radio_amount?: number;
current_chips?: Object[];
imageURL?: string;
}
Hat Ihre 'question.id' das ID-Feld oder Sie erwarten den Schlüssel? – Hareesh
Es hat die Feld ID ich glaube ja. Ich habe die Frage aktualisiert, um einzuschließen, was ich gerade ansehe. – Bruhno
Was ist das für ein Teil des Codes? 'This.testDoc.delete()'? – Hareesh