Ora sappiamo come possiamo archiviare e recuperare i dati, ovviamente nella nostra app, possiamo comunque modificare ed eliminare i dati.
Quindi assicuriamoci che funzioni anche per questo, tornerò alle
mie azioni e lì, nel file delle azioni dei prodotti, qui abbiamo il nostro creatore dell'azione dei prodotti di aggiornamento.
Ora, proprio come prima, ora cambierò questo per restituire la spedizione asincrona
e poi alla fine, lì dentro, spedire questa azione qui, quindi spostala lì e chiama la funzione di spedizione qui che stiamo
ottenendo tramite Redux Thunk e prima di
noi farlo, ora possiamo raggiungere il server e aggiornare i nostri dati lì.
Ora sarà abbastanza semplice, possiamo solo usare di nuovo la sintassi per creare un prodotto, questo qui, quindi solo la richiesta
di recupero dovrebbe essere sufficiente qui e farlo prima di spedire, grazie ad aspettare aspetteremo questo perché questa funzione di
spedizione è invisibile viene bloccato nel blocco che appartiene a questa promessa, ma dobbiamo
modificare questa richiesta,
l'URL ad esempio non è del tutto corretto, punta al prodotto ma ora vogliamo puntare a
un prodotto specifico, l'unico prodotto che vogliamo aggiornare. Quindi userò qui una diversa sintassi
Javascript con segni di spunta indietro anziché singole virgolette che crea ancora una stringa ma
una stringa in cui posso facilmente inserire dati dinamici e aggiungerò un nuovo segmento dopo i prodotti prima. json e ora possiamo inserire dati con questa sintassi $ \ e questo è Javascript vaniglia,
non specifico di React Native, è solo Javascript e qui voglio aggiungere il mio ID,
in modo che alla fine scelga come target questo URL, quindi il nodo prodotti e quindi questo ID. Ovviamente se stai usando un'API diversa, allora Firebase gli URL a cui devi inviare la richiesta
differiranno, quindi dovresti avere una documentazione
API che ti dice quali URL sono accettati o stai scrivendo la
tua API, quindi tu dovrebbe assolutamente sapere dove è possibile inviare richieste. Ecco come lo vuole Firebase e anche il metodo per l'aggiornamento non dovrebbe essere
post ma patch o put. Put sostituirà completamente la risorsa
con i nuovi dati, la patch lo aggiornerà
nei punti in cui gli dici di aggiornarlo ed è quello che voglio qui. Ho anche bisogno di aggiungere le mie intestazioni e ora aggiungo anche un corpo con il titolo, la
descrizione e imageUrl ma ovviamente non con il prezzo perché
non stiamo ottenendo questo e non vogliamo toccarlo e questo invierà la
richiesta dove Firebase cambierà automaticamente questi campi sul prodotto solo con questo ID a cui ci stiamo rivolgendo. Ora in realtà non ho bisogno di archiviare la risposta in una costante perché
non mi interessa comunque, è solo
importante aspettare che questo si completi e con ciò, dovremmo essere buoni. Se ora lo salviamo e andiamo qui per l'amministrazione e iniziamo a modificarlo e forse aggiungiamo un
punto esclamativo qui e quindi importante, fai clic da qualche altra parte
in modo che questo si riavvii a causa della nostra logica del modulo e invii i suoi nuovi dati e quindi facciamo
clic su questo segno di spunta, siamo ripresi e vediamo una camicia bianca qui, la vediamo anche su Firebase, quindi funziona. Quindi è così che possiamo aggiornare i dati, ora per quanto riguarda l'eliminazione? Per questo torniamo alle nostre azioni e per l'eliminazione, abbiamo il nostro
creatore di azioni. Ora, proprio come
prima, qui sono tornato come funzione asincrona
che riceve l'invio come argomento e dove in questa funzione, alla fine inviamo questa
azione che raggiunge il nostro riduttore e prima di raggiungerla, possiamo inviare nuovamente una richiesta. Richiesta che assomiglia a questa, copierò questa parte qui, non mi interessa davvero la
risposta, proprio così, attendo il recupero. Ora l'URL è sbagliato, proprio come per l'aggiornamento, voglio aggiungere il mio ID lì
dentro, quindi userò i segni di spunta in modo da poter
usare di nuovo questa sintassi di iniezione e aggiungere l'ID del prodotto qui, inviare una richiesta di eliminazione e abbiamo vinto
Non è necessario impostare un'intestazione perché anche noi non avremo un corpo, quindi possiamo sbarazzarci di tutto ciò, solo il metodo
è importante e che attendiamo e quindi ora dovremmo essere in grado di eliminare anche i dati. Possiamo dare una rapida occhiata a questo, se creo un nuovo prodotto fittizio che posso facilmente eliminare senza perdere troppo,
in questo modo, se lo salvo, se faccio clic su
Elimina qui, fai clic su Sì è andato qui e anche lo abbiamo visto per una frazione di secondo qui, è stato anche cancellato su Firebase. Quindi è così che possiamo anche
aggiornare ed eliminare.