1 00:00:02,170 --> 00:00:10,580 Teraz wiemy, jak możemy przechowywać i pobierać dane, oczywiście w naszej aplikacji możemy jednak również edytować i usuwać dane. 2 00:00:10,690 --> 00:00:15,760 Upewnijmy się więc, że to również działa i do 3 00:00:16,360 --> 00:00:26,320 tego wrócę do moich działań, a tam, w pliku działań dotyczących produktów, mamy tutaj naszego twórcę akcji aktualizacji produktu. 4 00:00:26,360 --> 00:00:31,050 Teraz, tak jak poprzednio, teraz zmienię to, aby zwrócić asynchroniczną wysyłkę, a 5 00:00:31,340 --> 00:00:39,440 następnie na końcu, tutaj, wywołaj tę akcję tutaj, więc przenieś ją tam i wywołaj funkcję wysyłki, którą otrzymujemy za pośrednictwem 6 00:00:39,440 --> 00:00:42,250 Redux Thunk i zanim w tym 7 00:00:42,470 --> 00:00:47,420 celu możemy teraz skontaktować się z serwerem i tam zaktualizować nasze dane. 8 00:00:47,470 --> 00:00:55,010 Teraz będzie to dość proste, możemy po prostu ponownie użyć składni z create produktu, tutaj, więc wystarczy samo żądanie 9 00:00:55,010 --> 00:01:02,390 pobrania tutaj i zrób to przed wysłaniem, dzięki oczekiwaniu na to poczekamy, ponieważ ta funkcja wysyłki jest niewidoczna 10 00:01:02,390 --> 00:01:07,610 zostaje zawinięty w następnie zablokowaną, która należy do tej obietnicy, ale musimy 11 00:01:07,610 --> 00:01:09,010 dostosować to żądanie, 12 00:01:09,020 --> 00:01:15,050 na przykład adres URL nie jest całkowicie poprawny, wskazuje na produkt, ale teraz chcemy wskazać 13 00:01:15,080 --> 00:01:20,990 konkretny produkt, jedyny produkt, który chcemy aktualizacja. Dlatego użyję tutaj innej składni 14 00:01:20,990 --> 00:01:26,960 Javascript z tylnymi paskami zamiast pojedynczych cudzysłowów, która wciąż tworzy ciąg, ale 15 00:01:26,960 --> 00:01:33,980 ciąg, w którym mogę łatwo wprowadzić dynamiczne dane i dodam nowy segment po produktach wcześniej. json i możemy teraz wstrzykiwać dane za pomocą tej składni $ \ i to jest waniliowy 16 00:01:33,980 --> 00:01:40,970 Javascript, nie specyficzny dla React Native, to tylko Javascript i tutaj chcę dodać mój 17 00:01:41,030 --> 00:01:48,850 identyfikator, aby w końcu kierować na ten adres URL, a następnie węzeł produktów a następnie ten identyfikator. Oczywiście, jeśli używasz innego interfejsu API, Firebase adresy URL, do których musisz wysłać zapytanie, 18 00:01:48,880 --> 00:01:55,630 będą się różnić, powinieneś mieć 19 00:01:55,660 --> 00:02:01,810 dokumentację API, która mówi, które adresy są akceptowane lub piszesz własny 20 00:02:01,810 --> 00:02:07,810 interfejs API, a następnie powinien zdecydowanie wiedzieć, gdzie możesz wysyłać żądania. Tak chce Firebase, a teraz metoda aktualizacji nie powinna być wysyłana, 21 00:02:07,810 --> 00:02:13,270 ale łatana lub umieszczana. Put całkowicie zastąpi zasób 22 00:02:13,300 --> 00:02:20,980 nowymi danymi, patch zaktualizuje go w 23 00:02:20,980 --> 00:02:27,130 miejscach, w których każesz go zaktualizować i właśnie tego chcę tutaj. Muszę również dodać nagłówki, a teraz także treść z tytułem, opisem i imageUrl, ale oczywiście 24 00:02:27,130 --> 00:02:34,270 nie z ceną, ponieważ nie otrzymujemy tego i 25 00:02:34,270 --> 00:02:38,240 nie chcemy tego dotykać, a to spowoduje wysłanie żądania 26 00:02:38,980 --> 00:02:45,110 Firebase automatycznie zmieni te pola w produkcie tylko z tym identyfikatorem, na który celujemy. Teraz właściwie nie muszę przechowywać odpowiedzi w sposób ciągły, ponieważ i tak 27 00:02:45,110 --> 00:02:51,390 mnie to nie obchodzi, ważne 28 00:02:51,390 --> 00:02:56,880 jest, abyśmy czekali na zakończenie i dzięki temu powinniśmy być dobrzy. Jeśli teraz to zapiszemy i przejdziemy tutaj do administratora i rozpoczniemy edycję tego, a 29 00:02:56,880 --> 00:03:05,640 może dodamy wykrzyknik tutaj, a następnie ważne, kliknij gdzieś indziej, aby 30 00:03:05,640 --> 00:03:12,540 to uruchomiło się ponownie z powodu naszej logiki formularza i przesłało nowe dane, a następnie klikamy ten znacznik wyboru, 31 00:03:12,540 --> 00:03:19,140 zabrano nas z powrotem i widzimy tutaj białą koszulę, widzimy to również w Firebase, więc to działa. W ten sposób możemy aktualizować dane, a teraz co z usuwaniem? W tym celu wróćmy do naszych działań i do usunięcia, mamy 32 00:03:19,140 --> 00:03:25,620 naszego twórcę akcji. Teraz, tak jak 33 00:03:25,620 --> 00:03:32,550 poprzednio, tutaj zwróciłem jako funkcję asynchroniczną, 34 00:03:32,580 --> 00:03:40,250 która dostaje argument jako argument i gdzie w tej funkcji, w końcu wysyłamy 35 00:03:40,250 --> 00:03:48,360 akcję, która dociera do naszego reduktora i zanim to osiągniemy, możemy ponownie wysłać żądanie. Żądanie, które wygląda tak, skopiuję tę część tutaj, nie dbam o odpowiedź tak 36 00:03:48,360 --> 00:03:56,950 naprawdę, po prostu czekaj na pobranie. Teraz adres URL jest nieprawidłowy, podobnie jak w przypadku aktualizacji, chcę 37 00:03:56,950 --> 00:04:04,240 dodać tam mój identyfikator, dlatego użyję zwrotów, aby 38 00:04:04,400 --> 00:04:10,900 móc ponownie użyć tej składni wtrysku i dodać tutaj identyfikator produktu, wysłać żądanie usunięcia i wygraliśmy nie 39 00:04:11,350 --> 00:04:17,790 trzeba ustawiać nagłówka, ponieważ my również nie będziemy mieć ciała, więc możemy się tego wszystkiego pozbyć, 40 00:04:17,790 --> 00:04:23,140 tylko metoda jest ważna i czekamy, dlatego też powinniśmy być w stanie usunąć dane. Możemy rzucić na to okiem, jeśli utworzę nowy produkt zastępczy, który mogę łatwo usunąć, nie tracąc 41 00:04:23,140 --> 00:04:28,570 zbyt wiele, w ten sposób, jeśli to zapiszę, 42 00:04:28,570 --> 00:04:35,500 jeśli kliknę tutaj usuń, kliknij tak, to zniknęło i też to zobaczyliśmy przez ułamek sekundy tutaj został również usunięty na Firebase. W ten sposób możemy również aktualizować 43 00:04:35,860 --> 00:04:43,210 i usuwać.