1 00:00:02,200 --> 00:00:07,590 Nous ajoutons des jetons partout, ce qui est important, mais pour les commandes, nous ne voulons pas seulement ajouter le 2 00:00:07,600 --> 00:00:11,800 jeton, nous voulons également nous assurer que les commandes appartiennent vraiment à l'utilisateur connecté. 3 00:00:11,800 --> 00:00:17,080 Maintenant, la bonne chose est que nous stockons l'ID utilisateur généré par Firebase dans notre magasin Redux. 4 00:00:17,080 --> 00:00:21,480 Donc, mapper nos commandes aux utilisateurs n'est pas trop difficile, nous avons accès à notre magasin complet ici, 5 00:00:21,520 --> 00:00:29,140 afin que nous puissions obtenir l'ID utilisateur en appelant getState. auth. userId, c'est tout, cela 6 00:00:29,140 --> 00:00:33,270 nous donne l'ID utilisateur de l'utilisateur actuellement connecté 7 00:00:33,340 --> 00:00:40,030 et maintenant nous pouvons l'injecter ici et remplacer l'U1 codé en dur par userId. 8 00:00:40,030 --> 00:00:46,840 Bien sûr, non seulement pour ajouter des commandes, mais aussi pour récupérer des commandes, car nous voulons récupérer les 9 00:00:46,900 --> 00:00:49,060 commandes de l'utilisateur actuellement connecté. 10 00:00:49,060 --> 00:00:55,540 Alors ici, recevons également ce deuxième argument, récupérons notre userId et échangeons ici des guillemets 11 00:00:55,540 --> 00:01:03,640 simples pour des ticks arrière afin que nous puissions utiliser cette injection pratique et pratique ici, puis remplacer ou interpoler 12 00:01:03,640 --> 00:01:10,940 comme on l'appelle ici en ajoutant l'ID utilisateur. Ainsi, cela garantit également que les commandes sont stockées correctement, mais bien sûr, ce 13 00:01:10,940 --> 00:01:11,880 ne sont pas 14 00:01:11,900 --> 00:01:18,160 seulement les commandes, les produits doivent également être stockés de la sorte. Nous devons nous assurer que lorsque nous créons 15 00:01:18,160 --> 00:01:23,000 un produit, nous y ajoutons effectivement notre ID de propriétaire, c'est quelque chose que nous 16 00:01:23,020 --> 00:01:26,960 ne faisons pas actuellement et c'est quelque chose que nous devons faire. 17 00:01:27,100 --> 00:01:33,200 Donc ici, je veux aussi obtenir l'ID utilisateur ici dans créer un produit et quand j'envoie ensuite ma demande pour 18 00:01:33,370 --> 00:01:39,380 créer un nouveau produit, je ne veux pas seulement définir le titre, la description et ainsi de suite, je 19 00:01:39,400 --> 00:01:39,920 veux 20 00:01:39,970 --> 00:01:48,130 également définir un propriétaire Le champ ID et le nom exact sont à vous, qui est égal à l'ID utilisateur de l'utilisateur connecté et c'est maintenant quelque 21 00:01:48,130 --> 00:01:49,720 chose de tout nouveau, maintenant 22 00:01:49,720 --> 00:01:51,610 nous commençons vraiment à mapper les 23 00:01:51,610 --> 00:01:59,560 produits à un utilisateur, quelque chose que nous faisions auparavant de manière fictive. Cela signifie également que lorsque nous expédions créer un produit 24 00:01:59,560 --> 00:02:05,980 ici, je veux transmettre une nouvelle information, je veux également y ajouter l'ID du propriétaire et également pointer 25 00:02:06,490 --> 00:02:11,520 l'ID utilisateur ici et cela signifie que dans le réducteur de produits, nous devons 26 00:02:11,890 --> 00:02:16,310 respecter cela et là-bas, au lieu de coder en dur cet ID 27 00:02:16,540 --> 00:02:24,130 ici, nous pouvons maintenant obtenir cela de notre action. productData, à partir de l'ID du propriétaire, car 28 00:02:24,580 --> 00:02:28,200 c'est ce que je viens d'ajouter. 29 00:02:28,210 --> 00:02:33,990 Alors ici, les produits, j'ai ajouté l'ID du propriétaire, j'ai ajouté cette clé aux données du produit, à 30 00:02:34,090 --> 00:02:39,910 l'action que j'envoie, maintenant dans le réducteur, nous devons l'utiliser, l'extraire ici et l'utiliser comme ID du propriétaire du 31 00:02:39,910 --> 00:02:42,230 produit que nous créons localement à Redux. 32 00:02:42,340 --> 00:02:49,780 Bien sûr, cela signifie également qu'ici, lorsque j'obtiens les produits qui appartiennent à cet utilisateur, je veux également 33 00:02:49,780 --> 00:02:53,190 m'assurer que je filtre correctement pour l'ID correct. 34 00:02:53,800 --> 00:02:58,960 Donc, lorsque nous appelons des produits définis ici, je veux m'assurer que les 35 00:02:58,960 --> 00:03:07,540 produits utilisateur sont vraiment filtrés vers le bas pour l'utilisateur connecté, donc dans le créateur d'action produits, lorsque nous récupérons tous les produits, ici 36 00:03:07,540 --> 00:03:16,190 bien sûr, je veux récupérer tous les produits, mais là, je veux aussi pouvoir obtenir mon état afin que je puisse obtenir mon userId 37 00:03:16,400 --> 00:03:21,920 de l'état parce qu'ici, lorsque nous créons les produits chargés, je ne veux pas simplement 38 00:03:21,950 --> 00:03:28,350 les transférer, je veux aussi ajouter un nouvel utilisateur produits clé de mon objet d'action où je prends 39 00:03:28,400 --> 00:03:37,590 les produits chargés et ici je les filtre et je regarde chaque produit et si l'ID du propriétaire du produit, s'il est égal à l'ID utilisateur, 40 00:03:37,650 --> 00:03:43,590 alors je veux le garder car alors c'est un produit créé par l'utilisateur actuellement connecté, sinon 41 00:03:43,590 --> 00:03:44,290 je 42 00:03:44,340 --> 00:03:45,840 ne le garderai pas. 43 00:03:45,840 --> 00:03:51,040 Cela fait toujours partie du produit chargé que je passe au produit mais pas des produits que j'ai passés 44 00:03:51,040 --> 00:03:52,510 aux produits utilisateur et 45 00:03:52,860 --> 00:03:58,170 qui me permet de revenir au réducteur et là dans les produits définis, les produits utilisateur sont initialisés non 46 00:03:58,200 --> 00:04:04,860 pas en filtrant ici mais en définissant il est égal aux produits utilisateur d'action qui prend maintenant les produits filtrés filtrés dans le créateur 47 00:04:05,160 --> 00:04:12,290 d'action avec la logique que nous venons d'écrire où nous prenons l'ID utilisateur. Cela garantit que nous ne voyons que les produits 48 00:04:12,560 --> 00:04:18,260 que nous avons vraiment créés et que nous ne voyons pas le produit d'autres utilisateurs. 49 00:04:18,270 --> 00:04:25,310 Maintenant, bien sûr, nous pouvons également nous assurer que dans notre magasin de produits ici, nous ne commençons 50 00:04:25,310 --> 00:04:28,460 pas avec nos produits factices, mais nous 51 00:04:28,460 --> 00:04:37,440 commençons en fait avec un tableau vide dans les deux cas ici. Cela signifie également bien sûr que maintenant, si nous enregistrons cela et que 52 00:04:37,440 --> 00:04:41,230 nous nous connectons, nous devrions pouvoir voir notre produit précédent, le 53 00:04:41,310 --> 00:04:42,020 voici, 54 00:04:42,030 --> 00:04:45,010 mais si je vais à l'administrateur, nous ne 55 00:04:45,090 --> 00:04:50,340 le voyons pas là-bas et cela a beaucoup de sens car ce produit a été 56 00:04:50,340 --> 00:04:58,650 créé plus tôt dans le cours et n'a donc pas d'ID propriétaire. Ce produit n'a pas d'ID de propriétaire, donc il n'est inclus dans aucun produit utilisateur, ce qui 57 00:04:58,650 --> 00:05:01,980 est génial car maintenant j'ai un bel exemple qu'il n'y a pas encore de 58 00:05:02,010 --> 00:05:04,190 produits, peut-être devrions-nous également afficher un message ici. 59 00:05:04,320 --> 00:05:07,050 En remarque dans les commandes, nous ne voyons rien non 60 00:05:07,050 --> 00:05:12,720 plus et nous devrions peut-être également afficher un message ici car les commandes pour U1, ce n'est plus un ID utilisateur 61 00:05:12,720 --> 00:05:13,450 valide, donc 62 00:05:13,470 --> 00:05:18,680 ces commandes ne sont jamais chargées pour aucun utilisateur et c'est bien parce que Voilà comment il devrait être. 63 00:05:18,680 --> 00:05:23,840 Alors maintenant, avec cela, je vais juste ajuster ces pages un peu pour afficher un message si nous ne pouvons pas charger de données. 64 00:05:23,870 --> 00:05:32,620 Donc, ici, dans l'écran des produits utilisateur, si la longueur des produits utilisateur est égale à zéro, je ne veux pas retourner ma liste plate, mais à 65 00:05:32,620 --> 00:05:41,090 la place, je retournerai une vue où j'ai un texte où je dis qu'aucun produit n'a été trouvé, peut-être commencez à en créer et nous devrons 66 00:05:41,110 --> 00:05:46,810 y configurer des styles, nous devons également importer la vue et le texte sinon nous ne pouvons pas 67 00:05:46,820 --> 00:05:49,520 afficher cela et maintenant je vais faire 68 00:05:49,520 --> 00:05:51,460 un style en ligne rapide 69 00:05:51,680 --> 00:05:59,060 et sale ici avec flex one, justifier centre de contenu et centre d'alignement des éléments, bien sûr, vous pouvez également attribuer votre propre 70 00:05:59,090 --> 00:06:04,340 police ici au texte et ainsi de suite, je vais le faire comme ceci, puis le 71 00:06:04,340 --> 00:06:09,070 copier et le déplacer vers l'écran des commandes, assurez-vous que vous importez la vue 72 00:06:09,170 --> 00:06:12,060 et le texte là aussi, puis ici, nous pouvons 73 00:06:12,110 --> 00:06:18,350 également ajouter cette vérification, si la longueur des produits utilisateur est vide, bien sûr ici, nous devons vérifier la 74 00:06:18,410 --> 00:06:24,010 longueur des commandes, pas la longueur des produits utilisateur, mais si elle est vide, je dis qu'aucune 75 00:06:24,110 --> 00:06:28,910 commande n'a été trouvée, peut-être commencer à commander certains produits comme ça et avec ça, 76 00:06:28,910 --> 00:06:31,940 on devrait voir ce texte si rien n'est trouvé. 77 00:06:31,940 --> 00:06:41,090 Donc, si j'essaye maintenant à nouveau et que je me connecte très rapidement et que nous allons à la page d'administration, nous voyons le texte ici et si nous allons 78 00:06:41,160 --> 00:06:42,630 à la page des 79 00:06:42,630 --> 00:06:44,540 commandes, nous voyons également le texte ici. 80 00:06:44,640 --> 00:06:46,460 Alors maintenant, cela fonctionne comme il se doit. 81 00:06:46,620 --> 00:06:55,470 Si je crée maintenant un nouveau produit d'autre part, par exemple un foulard disons avec un joli petit 82 00:06:55,470 --> 00:07:03,190 URL que j'ai sélectionné pour 55 $. 99, un foulard en laine, si je fais cela et 83 00:07:03,210 --> 00:07:12,060 que je soumets cela, cela fonctionne bien et il apparaît également ici sous admin, apparaît également sous les produits, nous pourrions bien sûr également 84 00:07:12,060 --> 00:07:16,650 le filtrer si vous le vouliez, mais pourquoi pas, pourquoi ne l'avons-nous 85 00:07:16,650 --> 00:07:18,290 pas ici aussi et 86 00:07:18,380 --> 00:07:26,840 si j'ajoute ceci au panier et que je clique sur commande maintenant, maintenant ici sous commandes, nous le voyons et sur Firebase, nous 87 00:07:26,840 --> 00:07:32,460 voyons également que sous commandes maintenant nous avons un nœud avec notre userId avec notre ordres. 88 00:07:32,490 --> 00:07:35,670 Donc, cela fonctionne maintenant vraiment comme il le devrait ici sur 89 00:07:35,670 --> 00:07:39,960 cette application et donc maintenant ici, nous avons une configuration avec laquelle nous pouvons travailler.