1 00:00:02,200 --> 00:00:07,590 Stiamo aggiungendo token ovunque, il che è importante, ma per gli ordini, non vogliamo solo aggiungere il token, 2 00:00:07,600 --> 00:00:11,800 ma vogliamo anche assicurarci che gli ordini appartengano davvero all'utente che ha effettuato l'accesso. 3 00:00:11,800 --> 00:00:17,080 Ora la cosa buona è che stiamo memorizzando l'utenteId che Firebase ha generato nel nostro negozio Redux. 4 00:00:17,080 --> 00:00:21,480 Quindi mappare i nostri ordini agli utenti non è troppo difficile, qui abbiamo accesso al nostro 5 00:00:21,520 --> 00:00:29,140 negozio completo, quindi possiamo ottenere userId chiamando getState. auth. userId, tutto qui, 6 00:00:29,140 --> 00:00:33,270 questo ci dà l'ID utente dell'utente attualmente 7 00:00:33,340 --> 00:00:40,030 connesso e ora possiamo iniettarlo qui e sostituire l'U1 hardcoded con userId. 8 00:00:40,030 --> 00:00:46,840 Ovviamente non solo per l'aggiunta di ordini ma anche per il recupero di ordini perché vogliamo recuperare 9 00:00:46,900 --> 00:00:49,060 gli ordini dell'utente attualmente connesso. 10 00:00:49,060 --> 00:00:55,540 Quindi qui, riceviamo anche quel secondo argomento, otteniamo il nostro userId e qui scambiamo virgolette 11 00:00:55,540 --> 00:01:03,640 singole per tick posteriori in modo che possiamo usare questa comoda iniezione dinamica qui e quindi sostituire o interpolare 12 00:01:03,640 --> 00:01:10,940 come qui viene chiamata questa stringa aggiungendo userId. Quindi questo ora assicura anche che gli ordini vengano archiviati correttamente ma ovviamente non 13 00:01:10,940 --> 00:01:11,880 sono solo gli 14 00:01:11,900 --> 00:01:18,160 ordini, ma anche i prodotti dovrebbero essere archiviati in questo modo. Dovremmo assicurarci che quando creiamo un prodotto, 15 00:01:18,160 --> 00:01:23,000 in realtà aggiungiamo il nostro ID proprietario ad esso, è qualcosa che attualmente 16 00:01:23,020 --> 00:01:26,960 non stiamo facendo e che è qualcosa che dovremmo fare. 17 00:01:27,100 --> 00:01:33,200 Quindi qui, in realtà voglio anche ottenere l'utenteId qui nel creare prodotto e quando invio la mia richiesta 18 00:01:33,370 --> 00:01:39,380 per creare un nuovo prodotto, non voglio solo impostare il titolo, la descrizione e così via, voglio anche 19 00:01:39,400 --> 00:01:39,920 impostare 20 00:01:39,970 --> 00:01:48,130 un proprietario Campo ID e il nome esatto dipende da te, che è uguale all'ID utente dell'utente che ha effettuato l'accesso e che ora è 21 00:01:48,130 --> 00:01:49,720 qualcosa di nuovo, ora 22 00:01:49,720 --> 00:01:51,610 iniziamo davvero a mappare i prodotti 23 00:01:51,610 --> 00:01:59,560 su un utente, qualcosa che abbiamo fatto solo in modo fittizio prima. Ciò significa anche che, quando spediamo il prodotto qui, 24 00:01:59,560 --> 00:02:05,980 voglio passare una nuova informazione, voglio aggiungere anche l'ID proprietario lì e anche indicare l'utenteId 25 00:02:06,490 --> 00:02:11,520 qui e ciò significa che nel riduttore dei prodotti, dobbiamo rispettare 26 00:02:11,890 --> 00:02:16,310 questo e lì dentro, invece di codificare questo ID qui, 27 00:02:16,540 --> 00:02:24,130 ora possiamo ottenere questo dalla nostra azione. productData, dall'ID proprietario lì perché è quello 28 00:02:24,580 --> 00:02:28,200 che ho appena aggiunto lì. 29 00:02:28,210 --> 00:02:33,990 Quindi qui prodotti, ho aggiunto l'ID proprietario, ho aggiunto questa chiave ai dati del prodotto, 30 00:02:34,090 --> 00:02:39,910 all'azione che invio, ora nel riduttore, dobbiamo usarlo, estrarlo qui e usarlo come ID proprietario del 31 00:02:39,910 --> 00:02:42,230 prodotto che creiamo localmente a Redux. 32 00:02:42,340 --> 00:02:49,780 Naturalmente questo significa anche che qui, quando ottengo i prodotti che appartengono a quell'utente, voglio anche 33 00:02:49,780 --> 00:02:53,190 assicurarmi di filtrare correttamente per l'ID corretto. 34 00:02:53,800 --> 00:02:58,960 Quindi quando chiamiamo i prodotti impostati qui, voglio assicurarmi che i prodotti degli 35 00:02:58,960 --> 00:03:07,540 utenti siano realmente filtrati verso il basso per l'utente che ha effettuato l'accesso, quindi nel creatore dell'azione dei prodotti, quando prendiamo tutti 36 00:03:07,540 --> 00:03:16,190 i prodotti, qui ovviamente voglio recuperare tutti i prodotti ma lì, voglio anche essere in grado di ottenere il mio stato in 37 00:03:16,400 --> 00:03:21,920 modo da poter ottenere il mio userId dallo stato perché quindi qui quando creiamo 38 00:03:21,950 --> 00:03:28,350 i prodotti caricati, non voglio solo inoltrarli, voglio anche aggiungere un nuovo utente chiave prodotti per 39 00:03:28,400 --> 00:03:37,590 il mio oggetto azione dove prendo i prodotti caricati e qui li filtro e guardo ogni prodotto e se l'ID proprietario del prodotto, se 40 00:03:37,650 --> 00:03:43,590 è uguale all'Id utente, quindi voglio mantenerlo perché quindi è un prodotto creato dall'utente attualmente 41 00:03:43,590 --> 00:03:44,290 connesso, 42 00:03:44,340 --> 00:03:45,840 altrimenti non lo terrò. 43 00:03:45,840 --> 00:03:51,040 Fa ancora parte del prodotto caricato che passo al prodotto ma non fa parte dei prodotti passati 44 00:03:51,040 --> 00:03:52,510 ai prodotti dell'utente e 45 00:03:52,860 --> 00:03:58,170 ciò mi consente di tornare al riduttore e lì nei prodotti impostati, i prodotti dell'utente vengono inizializzati 46 00:03:58,200 --> 00:04:04,860 non filtrando qui ma impostando equivale ai prodotti di azione dell'utente che ora accetta i prodotti filtrati filtrati nel creatore di azioni 47 00:04:05,160 --> 00:04:12,290 con la logica che abbiamo appena scritto dove portiamo l'ID utente. Questo ci assicura che vediamo solo i prodotti 48 00:04:12,560 --> 00:04:18,260 che abbiamo davvero creato e che non vediamo il prodotto di altri utenti. 49 00:04:18,270 --> 00:04:25,310 Ora ovviamente, a proposito, ora possiamo anche assicurarci che nel nostro negozio di prodotti qui, non iniziamo 50 00:04:25,310 --> 00:04:28,460 con i nostri prodotti fittizi, ma in 51 00:04:28,460 --> 00:04:37,440 realtà iniziamo con un array vuoto in entrambi i casi qui. Ciò significa ovviamente anche che ora se salviamo questo e accediamo, 52 00:04:37,440 --> 00:04:41,230 dovremmo essere in grado di visualizzare il nostro prodotto precedente, 53 00:04:41,310 --> 00:04:42,020 eccolo 54 00:04:42,030 --> 00:04:45,010 qui, ma se vado all'amministratore, non lo 55 00:04:45,090 --> 00:04:50,340 vediamo lì e questo ha molto senso perché questo prodotto è stato creato in 56 00:04:50,340 --> 00:04:58,650 precedenza nel corso e pertanto non ha un ID proprietario. Questo prodotto non ha un ID proprietario, quindi non è incluso in alcun prodotto degli utenti, il 57 00:04:58,650 --> 00:05:01,980 che è fantastico perché ora ho un buon esempio che non ci sono ancora 58 00:05:02,010 --> 00:05:04,190 prodotti, forse dovremmo anche mostrare un messaggio qui. 59 00:05:04,320 --> 00:05:07,050 Come nota a margine negli ordini, anche noi non vediamo 60 00:05:07,050 --> 00:05:12,720 nulla e forse dovremmo mostrare un messaggio anche qui perché gli ordini per U1, che ora non è più un ID 61 00:05:12,720 --> 00:05:13,450 utente valido, 62 00:05:13,470 --> 00:05:18,680 quindi questi ordini non vengono mai caricati per nessun utente e va bene perché è così che dovrebbe essere. 63 00:05:18,680 --> 00:05:23,840 Quindi ora con ciò, modificherò un po 'queste pagine per mostrare un messaggio se non possiamo caricare alcun dato. 64 00:05:23,870 --> 00:05:32,620 Quindi qui nella schermata del prodotto dell'utente, se la lunghezza dei prodotti dell'utente è uguale a zero, non voglio restituire la mia lista piatta ma 65 00:05:32,620 --> 00:05:41,090 invece restituirò una vista qui dove ho un testo in cui dico che non sono stati trovati prodotti, forse inizia a crearne alcuni e 66 00:05:41,110 --> 00:05:46,810 avremo bisogno di impostare alcuni stili lì, dobbiamo anche importare la vista e il testo altrimenti 67 00:05:46,820 --> 00:05:49,520 non possiamo visualizzarlo e ora farò solo 68 00:05:49,520 --> 00:05:51,460 uno stile in linea 69 00:05:51,680 --> 00:05:59,060 veloce e sporco qui con Flex One, giustificare centro contenuti e allinea centro oggetti, ovviamente puoi anche assegnare il tuo carattere 70 00:05:59,090 --> 00:06:04,340 qui al testo e così via, lo farò in questo modo e poi lo copierò 71 00:06:04,340 --> 00:06:09,070 e lo sposterò nella schermata degli ordini, assicurandoti di inport view e testo 72 00:06:09,170 --> 00:06:12,060 anche lì e quindi qui possiamo anche aggiungere 73 00:06:12,110 --> 00:06:18,350 questo controllo, se la lunghezza dei prodotti dell'utente è vuota, ovviamente qui dovremmo controllare la lunghezza degli ordini, 74 00:06:18,410 --> 00:06:24,010 non la lunghezza dei prodotti dell'utente ma se è vuota, dico che non sono stati trovati 75 00:06:24,110 --> 00:06:28,910 ordini, forse iniziare a ordinare alcuni prodotti come questo e con quello, dovremmo 76 00:06:28,910 --> 00:06:31,940 vedere quel testo se non viene trovato nulla. 77 00:06:31,940 --> 00:06:41,090 Quindi, se ora riprovo e accedo molto velocemente e andiamo alla pagina di amministrazione, vediamo il testo qui e se andiamo alla 78 00:06:41,160 --> 00:06:42,630 pagina degli ordini, 79 00:06:42,630 --> 00:06:44,540 vediamo anche il testo qui. 80 00:06:44,640 --> 00:06:46,460 Quindi ora funziona come dovrebbe. 81 00:06:46,620 --> 00:06:55,470 Se ora creo un nuovo prodotto, ad esempio una sciarpa, diciamo con un piccolo URL 82 00:06:55,470 --> 00:07:03,190 che ho selezionato per $ 55. 99, una sciarpa di lana, se lo faccio e lo 83 00:07:03,210 --> 00:07:12,060 invio, questo funziona bene e si presenta anche qui sotto admin, si presenta anche sotto prodotti, ovviamente potremmo anche filtrarlo là fuori se 84 00:07:12,060 --> 00:07:16,650 lo volessi, ma perché no, perché non ce l'abbiamo anche qui e 85 00:07:16,650 --> 00:07:18,290 se lo aggiungo 86 00:07:18,380 --> 00:07:26,840 al carrello e faccio clic su Ordina ora, ora qui sotto gli ordini, lo vediamo e su Firebase, vediamo anche che sotto 87 00:07:26,840 --> 00:07:32,460 gli ordini ora abbiamo un nodo con il nostro utenteId con il nostro ordini. 88 00:07:32,490 --> 00:07:35,670 Quindi ora funziona davvero come dovrebbe qui su 89 00:07:35,670 --> 00:07:39,960 questa applicazione e quindi ora qui, abbiamo una configurazione con cui possiamo lavorare.