Teraz wiemy, jak możemy przechowywać i pobierać dane, oczywiście w naszej aplikacji możemy jednak również edytować i usuwać dane.
Upewnijmy się więc, że to również działa i do
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.
Teraz, tak jak poprzednio, teraz zmienię to, aby zwrócić asynchroniczną wysyłkę, a
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
Redux Thunk i zanim w tym
celu możemy teraz skontaktować się z serwerem i tam zaktualizować nasze dane.
Teraz będzie to dość proste, możemy po prostu ponownie użyć składni z create produktu, tutaj, więc wystarczy samo żądanie
pobrania tutaj i zrób to przed wysłaniem, dzięki oczekiwaniu na to poczekamy, ponieważ ta funkcja wysyłki jest niewidoczna
zostaje zawinięty w następnie zablokowaną, która należy do tej obietnicy, ale musimy
dostosować to żądanie,
na przykład adres URL nie jest całkowicie poprawny, wskazuje na produkt, ale teraz chcemy wskazać
konkretny produkt, jedyny produkt, który chcemy aktualizacja. Dlatego użyję tutaj innej składni
Javascript z tylnymi paskami zamiast pojedynczych cudzysłowów, która wciąż tworzy ciąg, ale
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
Javascript, nie specyficzny dla React Native, to tylko Javascript i tutaj chcę dodać mój
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,
będą się różnić, powinieneś mieć
dokumentację API, która mówi, które adresy są akceptowane lub piszesz własny
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,
ale łatana lub umieszczana. Put całkowicie zastąpi zasób
nowymi danymi, patch zaktualizuje go w
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
nie z ceną, ponieważ nie otrzymujemy tego i
nie chcemy tego dotykać, a to spowoduje wysłanie żądania
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
mnie to nie obchodzi, ważne
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
może dodamy wykrzyknik tutaj, a następnie ważne, kliknij gdzieś indziej, aby
to uruchomiło się ponownie z powodu naszej logiki formularza i przesłało nowe dane, a następnie klikamy ten znacznik wyboru,
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
naszego twórcę akcji. Teraz, tak jak
poprzednio, tutaj zwróciłem jako funkcję asynchroniczną,
która dostaje argument jako argument i gdzie w tej funkcji, w końcu wysyłamy
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
naprawdę, po prostu czekaj na pobranie. Teraz adres URL jest nieprawidłowy, podobnie jak w przypadku aktualizacji, chcę
dodać tam mój identyfikator, dlatego użyję zwrotów, aby
móc ponownie użyć tej składni wtrysku i dodać tutaj identyfikator produktu, wysłać żądanie usunięcia i wygraliśmy nie
trzeba ustawiać nagłówka, ponieważ my również nie będziemy mieć ciała, więc możemy się tego wszystkiego pozbyć,
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
zbyt wiele, w ten sposób, jeśli to zapiszę,
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ć
i usuwać.