1 00:00:02,200 --> 00:00:07,590 Estamos adicionando tokens em todos os lugares, o que é importante, mas para pedidos, não queremos apenas anexar 2 00:00:07,600 --> 00:00:11,800 o token, também queremos garantir que os pedidos realmente pertençam ao usuário conectado. 3 00:00:11,800 --> 00:00:17,080 Agora, o bom é que estamos armazenando o ID do usuário que o Firebase gerou em nossa loja Redux. 4 00:00:17,080 --> 00:00:21,480 Portanto, mapear nossos pedidos para os usuários não é muito difícil, temos acesso a nossa loja completa 5 00:00:21,520 --> 00:00:29,140 aqui, para que possamos obter o userId chamando getState. auth. userId, isso é tudo, 6 00:00:29,140 --> 00:00:33,270 isso nos fornece o userId do usuário conectado no 7 00:00:33,340 --> 00:00:40,030 momento e agora podemos injetar isso aqui e substituir o U1 codificado por userId. 8 00:00:40,030 --> 00:00:46,840 Obviamente, não apenas para adicionar pedidos, mas também para buscar pedidos, porque queremos buscar os pedidos 9 00:00:46,900 --> 00:00:49,060 do usuário conectado no momento. 10 00:00:49,060 --> 00:00:55,540 Portanto, aqui, também recebemos o segundo argumento, obtemos nosso userId e trocamos aspas simples por 11 00:00:55,540 --> 00:01:03,640 tick back, para que possamos usar essa injeção dinâmica conveniente aqui e, em seguida, substituir ou interpolar como é 12 00:01:03,640 --> 00:01:10,940 chamada essa string aqui, adicionando o userId. Portanto, agora isso também garante que os pedidos sejam armazenados corretamente, mas é 13 00:01:10,940 --> 00:01:11,880 claro que não 14 00:01:11,900 --> 00:01:18,160 são apenas os pedidos; os produtos também devem ser armazenados. Deveríamos garantir que, quando criamos um produto, 15 00:01:18,160 --> 00:01:23,000 adicionamos nosso ID de proprietário, isso é algo que não estamos 16 00:01:23,020 --> 00:01:26,960 fazendo no momento e é algo que devemos fazer. 17 00:01:27,100 --> 00:01:33,200 Então, aqui, na verdade, também quero que o userId seja criado em um produto e, quando enviar minha 18 00:01:33,370 --> 00:01:39,380 solicitação para criar um novo produto, não quero apenas definir título, descrição e assim por diante, também quero 19 00:01:39,400 --> 00:01:39,920 definir 20 00:01:39,970 --> 00:01:48,130 um proprietário O campo de ID e o nome exato são com você, o que é igual ao userId do usuário conectado e isso 21 00:01:48,130 --> 00:01:49,720 é algo totalmente novo, 22 00:01:49,720 --> 00:01:51,610 agora realmente começamos a mapear produtos 23 00:01:51,610 --> 00:01:59,560 para um usuário, algo que antes era feito apenas de maneira fictícia. Isso também significa que, quando enviamos a criação de produto 24 00:01:59,560 --> 00:02:05,980 aqui, desejo passar uma nova informação, também quero adicionar o ID do proprietário e também apontar 25 00:02:06,490 --> 00:02:11,520 para o ID do usuário aqui, o que significa que, no redutor de 26 00:02:11,890 --> 00:02:16,310 produtos, precisamos respeitar isso e lá, em vez de codificar esse 27 00:02:16,540 --> 00:02:24,130 ID aqui, agora podemos obtê-lo com nossa ação. productData, do ID do proprietário, porque foi 28 00:02:24,580 --> 00:02:28,200 o que acabei de adicionar lá. 29 00:02:28,210 --> 00:02:33,990 Então aqui produtos, adicionei o ID do proprietário, adicionei essa chave aos dados do produto, à 30 00:02:34,090 --> 00:02:39,910 ação que despacho, agora no redutor, temos que usá-lo, extraí-lo aqui e usá-lo como um ID do 31 00:02:39,910 --> 00:02:42,230 proprietário que criamos localmente no Redux. 32 00:02:42,340 --> 00:02:49,780 É claro que isso também significa que, aqui, quando eu receber os produtos que pertencem a esse usuário, também quero 33 00:02:49,780 --> 00:02:53,190 garantir que eu filtre corretamente o ID correto. 34 00:02:53,800 --> 00:02:58,960 Portanto, quando chamamos produtos definidos aqui, quero garantir que os produtos dos 35 00:02:58,960 --> 00:03:07,540 usuários sejam realmente filtrados para o usuário conectado, portanto, no criador da ação dos produtos, quando buscarmos todos os produtos, é claro 36 00:03:07,540 --> 00:03:16,190 que quero buscar todos os produtos, mas lá, também quero poder obter meu estado para poder obter meu userId do estado, porque 37 00:03:16,400 --> 00:03:21,920 aqui, quando criamos os produtos carregados, não quero apenas encaminhar esses itens, também quero 38 00:03:21,950 --> 00:03:28,350 adicionar um novo usuário chave de produtos para o meu objeto de ação, onde eu pego 39 00:03:28,400 --> 00:03:37,590 os produtos carregados e aqui os filtro e dou uma olhada em cada produto e, se o ID do proprietário do produto, se for 40 00:03:37,650 --> 00:03:43,590 igual ao userId, quero mantê-lo, pois é um produto criado pelo usuário conectado no momento, 41 00:03:43,590 --> 00:03:44,290 caso 42 00:03:44,340 --> 00:03:45,840 contrário, não o manteremos. 43 00:03:45,840 --> 00:03:51,040 Ainda faz parte do produto carregado que passo para o produto, mas não faz parte dos produtos que 44 00:03:51,040 --> 00:03:52,510 passei para os produtos 45 00:03:52,860 --> 00:03:58,170 do usuário e que me permite voltar ao redutor e lá nos produtos definidos, os produtos do usuário são 46 00:03:58,200 --> 00:04:04,860 inicializados não filtrando aqui, mas definindo é igual aos produtos de usuário de ação que agora usam os produtos filtrados filtrados no criador da 47 00:04:05,160 --> 00:04:12,290 ação com a lógica que acabamos de escrever para onde levamos o userId. Isso garante que apenas vejamos os 48 00:04:12,560 --> 00:04:18,260 produtos que realmente criamos e não os produtos de outros usuários. 49 00:04:18,270 --> 00:04:25,310 Agora, a propósito, agora também podemos garantir que em nossa loja de produtos aqui, não começamos 50 00:04:25,310 --> 00:04:28,460 com nossos produtos fictícios, mas na 51 00:04:28,460 --> 00:04:37,440 verdade começamos com uma matriz vazia nos dois casos aqui. Isso também significa, é claro, que agora, se salvarmos e fizermos 52 00:04:37,440 --> 00:04:41,230 login, poderemos visualizar nosso produto anterior, aqui está ele, mas 53 00:04:41,310 --> 00:04:42,020 se 54 00:04:42,030 --> 00:04:45,010 eu for para o administrador, não o 55 00:04:45,090 --> 00:04:50,340 veremos lá e isso fará muito sentido, porque este produto foi criado anteriormente 56 00:04:50,340 --> 00:04:58,650 no curso e, portanto, não possui um ID do proprietário. Este produto não possui um ID de proprietário, portanto, não está incluído em nenhum produto de usuário, 57 00:04:58,650 --> 00:05:01,980 o que é ótimo, porque agora tenho um bom exemplo de que ainda não 58 00:05:02,010 --> 00:05:04,190 há produtos, talvez devamos mostrar uma mensagem aqui. 59 00:05:04,320 --> 00:05:07,050 Como nota lateral nos pedidos, também não vemos nada e 60 00:05:07,050 --> 00:05:12,720 talvez devamos mostrar uma mensagem aqui também porque os pedidos para o U1, que agora não são mais um ID de 61 00:05:12,720 --> 00:05:13,450 usuário válido, 62 00:05:13,470 --> 00:05:18,680 portanto esses pedidos nunca são carregados para nenhum usuário e isso é bom porque É assim que deve ser. 63 00:05:18,680 --> 00:05:23,840 Então agora, com isso, ajustarei um pouco essas páginas para mostrar uma mensagem se não pudermos carregar dados. 64 00:05:23,870 --> 00:05:32,620 Portanto, aqui na tela do produto do usuário, se o comprimento dos produtos do usuário for igual a zero, não quero retornar minha lista fixa, 65 00:05:32,620 --> 00:05:41,090 mas retornarei uma visualização aqui onde tenho um texto onde digo que nenhum produto foi encontrado, talvez comece a criar alguns e precisaremos configurar 66 00:05:41,110 --> 00:05:46,810 alguns estilos lá, também precisamos importar a visualização e o texto, caso contrário não podemos exibir 67 00:05:46,820 --> 00:05:49,520 isso e agora vou fazer um estilo 68 00:05:49,520 --> 00:05:51,460 em linha rápido e 69 00:05:51,680 --> 00:05:59,060 sujo aqui com o flex one, justifique centro de conteúdo e centro de itens de alinhamento, é claro que você também 70 00:05:59,090 --> 00:06:04,340 pode atribuir sua própria fonte aqui ao texto e assim por diante. Vou fazer assim 71 00:06:04,340 --> 00:06:09,070 e depois copiar e movê-lo para a tela de pedidos. e o texto 72 00:06:09,170 --> 00:06:12,060 também e aqui também podemos adicionar essa verificação, 73 00:06:12,110 --> 00:06:18,350 se o comprimento dos produtos do usuário estiver vazio, é claro que devemos verificar o comprimento dos pedidos, 74 00:06:18,410 --> 00:06:24,010 não o comprimento dos produtos do usuário, mas se estiver vazio, digo que nenhum pedido foi 75 00:06:24,110 --> 00:06:28,910 encontrado, talvez comece a fazer o pedido alguns produtos como esse e com 76 00:06:28,910 --> 00:06:31,940 isso, devemos ver esse texto se nada for encontrado. 77 00:06:31,940 --> 00:06:41,090 Portanto, se agora eu tentar de novo e efetuar login rapidamente e formos para a página de administração, veremos o texto aqui e, se formos para 78 00:06:41,160 --> 00:06:42,630 a página de 79 00:06:42,630 --> 00:06:44,540 pedidos, também veremos o texto aqui. 80 00:06:44,640 --> 00:06:46,460 Então agora está funcionando como deveria. 81 00:06:46,620 --> 00:06:55,470 Por outro lado, se eu criar um novo produto, por exemplo, um cachecol, digamos com um URL 82 00:06:55,470 --> 00:07:03,190 agradável que selecionei por US $ 55. 99, um cachecol de lã, se eu fizer isso e 83 00:07:03,210 --> 00:07:12,060 enviar isso, isso funciona bem e também aparece aqui em admin, também aparece em produtos, é claro que também podemos filtrá-lo, se 84 00:07:12,060 --> 00:07:16,650 você quiser, mas por que não, por que nós não temos 85 00:07:16,650 --> 00:07:18,290 aqui também e 86 00:07:18,380 --> 00:07:26,840 se eu adicionar isso ao carrinho e clicar em order now, agora aqui sob orders, vemos e no Firebase, também vemos 87 00:07:26,840 --> 00:07:32,460 que, sob orders, temos um nó com o nosso userId com o nosso ordens. 88 00:07:32,490 --> 00:07:35,670 Portanto, agora isso está realmente funcionando da maneira que deveria 89 00:07:35,670 --> 00:07:39,960 aqui nesta aplicação e, portanto, agora aqui, temos uma configuração com a qual podemos trabalhar.