1 00:00:02,170 --> 00:00:10,580 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. 2 00:00:10,690 --> 00:00:15,760 Stellen wir also sicher, dass dies auch funktioniert, 3 00:00:16,360 --> 00:00:26,320 und dafür gehe ich zurück zu meinen Aktionen und dort, in der Produktaktionsdatei, haben wir unseren Update-Produktaktionsersteller hier. 4 00:00:26,360 --> 00:00:31,050 Jetzt wie zuvor werde ich dies jetzt ändern, um den asynchronen Versand zurückzugeben, und 5 00:00:31,340 --> 00:00:39,440 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 6 00:00:39,440 --> 00:00:42,250 Thunk und vor uns erhalten Wenn wir 7 00:00:42,470 --> 00:00:47,420 das tun, können wir uns jetzt an den Server wenden und dort unsere Daten aktualisieren. 8 00:00:47,470 --> 00:00:55,010 Nun, das wird ziemlich einfach sein, wir können einfach wieder die Syntax von create product verwenden, dies hier, also sollte hier nur 9 00:00:55,010 --> 00:01:02,390 die Abrufanforderung ausreichen und dies tun, bevor wir versenden, dank des Wartens werden wir darauf warten, da diese Versandfunktion unsichtbar ist wird 10 00:01:02,390 --> 00:01:07,610 in das dann blockierte Element eingewickelt, das zu diesem Versprechen gehört, aber wir müssen diese 11 00:01:07,610 --> 00:01:09,010 Anfrage optimieren. Die 12 00:01:09,020 --> 00:01:15,050 URL ist beispielsweise nicht ganz korrekt. Sie zeigt auf das Produkt, aber jetzt möchten wir auf ein bestimmtes 13 00:01:15,080 --> 00:01:20,990 Produkt zeigen, das eine Produkt, das wir möchten aktualisieren. Daher verwende ich hier eine andere Javascript-Syntax 14 00:01:20,990 --> 00:01:26,960 mit Back-Ticks anstelle von einfachen Anführungszeichen, wodurch immer noch eine Zeichenfolge erstellt wird, in die 15 00:01:26,960 --> 00:01:33,980 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 16 00:01:33,980 --> 00:01:40,970 spezifisch für React Native, es ist nur Javascript und hier möchte ich meine ID hinzufügen, 17 00:01:41,030 --> 00:01:48,850 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, 18 00:01:48,880 --> 00:01:55,630 von Firebase. Dann sollten Sie über 19 00:01:55,660 --> 00:02:01,810 eine API-Dokumentation verfügen, aus der hervorgeht, welche URLs akzeptiert werden, oder Sie schreiben 20 00:02:01,810 --> 00:02:07,810 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, 21 00:02:07,810 --> 00:02:13,270 sondern patch oder put sein. Put überschreibt die Ressource vollständig 22 00:02:13,300 --> 00:02:20,980 mit den neuen Daten, Patch aktualisiert sie an den 23 00:02:20,980 --> 00:02:27,130 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 24 00:02:27,130 --> 00:02:34,270 hinzufügen, aber natürlich nicht mit dem Preis, da wir 25 00:02:34,270 --> 00:02:38,240 dies nicht erhalten und dies nicht berühren möchten und dies die 26 00:02:38,980 --> 00:02:45,110 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 27 00:02:45,110 --> 00:02:51,390 egal ist. Es ist nur wichtig, dass 28 00:02:51,390 --> 00:02:56,880 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 29 00:02:56,880 --> 00:03:05,640 möglicherweise hier und dann ein Ausrufezeichen hinzufügen, klicken Sie auf eine andere 30 00:03:05,640 --> 00:03:12,540 Stelle, damit diese aufgrund unserer Formularlogik erneut ausgelöst wird und die neuen Daten übermittelt werden. Klicken Sie dann auf dieses 31 00:03:12,540 --> 00:03:19,140 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 32 00:03:19,140 --> 00:03:25,620 wir unseren Aktionsersteller. Nach wie vor bin 33 00:03:25,620 --> 00:03:32,550 ich hier als asynchrone Funktion zurückgekehrt, die 34 00:03:32,580 --> 00:03:40,250 den Versand als Argument erhält, und wo wir in dieser Funktion am Ende diese Aktion 35 00:03:40,250 --> 00:03:48,360 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 36 00:03:48,360 --> 00:03:56,950 Antwort, einfach so, warte auf den Abruf. Jetzt ist die URL falsch, genau wie beim Aktualisieren möchte ich meine ID 37 00:03:56,950 --> 00:04:04,240 dort hinzufügen, daher werde ich Back-Ticks verwenden, damit ich diese 38 00:04:04,400 --> 00:04:10,900 Injektionssyntax erneut verwenden und die Produkt-ID hier hinzufügen kann, eine Löschanforderung senden und wir haben gewonnen Es muss kein Header 39 00:04:11,350 --> 00:04:17,790 gesetzt werden, da wir auch keinen Body haben, damit wir all das loswerden können. Nur die Methode ist wichtig 40 00:04:17,790 --> 00:04:23,140 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 41 00:04:23,140 --> 00:04:28,570 viel zu verlieren. Wenn ich das speichere, wenn ich hier 42 00:04:28,570 --> 00:04:35,500 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 43 00:04:35,860 --> 00:04:43,210 und löschen.