Ich versuche derzeit, einen Zähler in Firestore mit Angular 4 einzurichten, das aktualisiert wird, wenn eine Person auf eine bestimmte Schaltfläche klickt. Wenn Sie auf die Schaltfläche klicken, wird der Zähler zwar aktualisiert, aber es wird eine Endlosschleife gestartet. Der einzige Weg, um es zu stoppen, ist die Zeile zu kommentieren, die nicht hilft, da ich den Zähler jedes Mal aktualisieren muss, wenn ich mich entscheide, auf diesen Knopf zu klicken. Hier ist der Code.Update in Firestore verursacht Endlosschleife
addFoodToCart(uid: string, email: string, item: Goods)
{
this.getUserInDB(email).doc(uid).valueChanges().subscribe(a =>
{
this.getUserInDB(email).doc(uid).collection('cart').add(item);
this.getUserInDB(email).doc(uid).update({'food': ++a['food'], 'technology': 0, 'email': email});
});
}
Wie man sehen kann ich bin auch ein Element in die gleiche Datenbank hinzugefügt, aber ich bemerkte, dass ein Teil auch aus und verursacht noch die unendliche Schleife in der db. Irgendein Grund, warum das passiert und wie man es repariert? Ich verwende Google Chrome auch als meinen Webbrowser für die Entwicklung. Sie wissen nicht, ob das einen Unterschied macht
Möchten Sie nehmen Operator nach dem Abonnement platzieren. Ich habe versucht zu tun, dass und es ist sagend, dass take() nicht existiert in der Art Subscription –
Ja, du musst den Operator an der Spitze deiner Datei importieren.Schaue dir die eckigen oder rxjs Dokumente durch, um die Syntax zu sehen (Entschuldigung auf meinem Handy, ich würde versuchen zu liefern –
Ich habe versucht, so zu verfahren, wie du es vorgeschlagen hast, und es ist immer noch das Gehäuse, was ich bemerkt habe, ist, dass es ausgeführt wird, wenn ich den Wert in Firestore ändere, also vielleicht seine Ausführung basierend auf der Änderung in der Wert im Firestore dat erniedrigen. –