Jetzt wissen wir, wie wir Daten speichern und abrufen können. Natürlich können wir in unserer App auch Daten bearbeiten und löschen.
Stellen wir also sicher, dass dies auch funktioniert,
und dafür gehe ich zurück zu meinen Aktionen und dort, in der Produktaktionsdatei, haben wir unseren Update-Produktaktionsersteller hier.
Jetzt wie zuvor werde ich dies jetzt ändern, um den asynchronen Versand zurückzugeben, und
dann am Ende dort diese Aktion hier versenden, also verschieben Sie sie dort hinein und rufen Sie die Versandfunktion hier auf, die wir über Redux
Thunk und vor uns erhalten Wenn wir
das tun, können wir uns jetzt an den Server wenden und dort unsere Daten aktualisieren.
Nun, das wird ziemlich einfach sein, wir können einfach wieder die Syntax von create product verwenden, dies hier, also sollte hier nur
die Abrufanforderung ausreichen und dies tun, bevor wir versenden, dank des Wartens werden wir darauf warten, da diese Versandfunktion unsichtbar ist wird
in das dann blockierte Element eingewickelt, das zu diesem Versprechen gehört, aber wir müssen diese
Anfrage optimieren. Die
URL ist beispielsweise nicht ganz korrekt. Sie zeigt auf das Produkt, aber jetzt möchten wir auf ein bestimmtes
Produkt zeigen, das eine Produkt, das wir möchten aktualisieren. Daher verwende ich hier eine andere Javascript-Syntax
mit Back-Ticks anstelle von einfachen Anführungszeichen, wodurch immer noch eine Zeichenfolge erstellt wird, in die
ich jedoch problemlos dynamische Daten einfügen kann, und ich werde nach den Produkten zuvor ein neues Segment hinzufügen. json und wir können jetzt Daten mit dieser $ \ -Syntax einfügen und das ist Vanille-Javascript, nicht
spezifisch für React Native, es ist nur Javascript und hier möchte ich meine ID hinzufügen,
so dass ich am Ende auf diese URL und dann auf den Produktknoten ziele und dann diese ID. Wenn Sie eine andere API verwenden, unterscheiden sich die URLs, an die Sie Ihre Anfrage senden müssen,
von Firebase. Dann sollten Sie über
eine API-Dokumentation verfügen, aus der hervorgeht, welche URLs akzeptiert werden, oder Sie schreiben
Ihre eigene API sollte auf jeden Fall wissen, wohin Sie Anfragen senden können. So will es Firebase und die Methode zum Aktualisieren sollte jetzt auch nicht post,
sondern patch oder put sein. Put überschreibt die Ressource vollständig
mit den neuen Daten, Patch aktualisiert sie an den
Stellen, an denen Sie sie anweisen, sie zu aktualisieren, und das möchte ich hier. Ich muss auch meine Header hinzufügen und jetzt auch einen Text mit dem Titel, der Beschreibung und imageUrl
hinzufügen, aber natürlich nicht mit dem Preis, da wir
dies nicht erhalten und dies nicht berühren möchten und dies die
Anfrage wohin sendet Firebase ändert automatisch nur diese Felder des Produkts mit dieser ID, auf die wir abzielen. Jetzt muss ich die Antwort eigentlich nicht in einer Konstanten speichern, weil es mir sowieso
egal ist. Es ist nur wichtig, dass
wir darauf warten, dass dies abgeschlossen ist, und damit sollten wir gut sein. Wenn wir das jetzt speichern und hier zu admin gehen und mit der Bearbeitung beginnen und
möglicherweise hier und dann ein Ausrufezeichen hinzufügen, klicken Sie auf eine andere
Stelle, damit diese aufgrund unserer Formularlogik erneut ausgelöst wird und die neuen Daten übermittelt werden. Klicken Sie dann auf dieses
Häkchen. Wir werden zurückgebracht und sehen hier ein weißes Hemd. Wir sehen dies auch auf Firebase, also funktioniert das. Auf diese Weise können wir Daten aktualisieren. Was ist nun mit dem Löschen? Dazu gehen wir zurück zu unseren Aktionen und zum Löschen haben
wir unseren Aktionsersteller. Nach wie vor bin
ich hier als asynchrone Funktion zurückgekehrt, die
den Versand als Argument erhält, und wo wir in dieser Funktion am Ende diese Aktion
auslösen, die unseren Reduzierer erreicht, und bevor wir diese erreichen, können wir erneut eine Anfrage senden. Anfrage, die so aussieht, ich werde diesen Teil hier kopieren, kümmere mich nicht wirklich um die
Antwort, einfach so, warte auf den Abruf. Jetzt ist die URL falsch, genau wie beim Aktualisieren möchte ich meine ID
dort hinzufügen, daher werde ich Back-Ticks verwenden, damit ich diese
Injektionssyntax erneut verwenden und die Produkt-ID hier hinzufügen kann, eine Löschanforderung senden und wir haben gewonnen Es muss kein Header
gesetzt werden, da wir auch keinen Body haben, damit wir all das loswerden können. Nur die Methode ist wichtig
und wir warten darauf. Daher sollten wir jetzt auch in der Lage sein, Daten zu löschen. Wir können einen kurzen Blick darauf werfen, wenn ich ein neues Dummy-Produkt erstelle, das ich leicht löschen kann, ohne zu
viel zu verlieren. Wenn ich das speichere, wenn ich hier
auf Löschen klicke, klicke auf Ja, es ist hier weg und wir haben es auch gesehen für den Bruchteil einer Sekunde wurde es auch auf Firebase gelöscht. So können wir also auch aktualisieren
und löschen.