1 00:00:02,200 --> 00:00:07,590 Estamos agregando tokens en todas partes, lo cual es importante, pero para los pedidos, no solo queremos agregar 2 00:00:07,600 --> 00:00:11,800 el token, también queremos asegurarnos de que los pedidos realmente pertenezcan al usuario conectado. 3 00:00:11,800 --> 00:00:17,080 Ahora lo bueno es que estamos almacenando el ID de usuario que Firebase generó en nuestra tienda Redux. 4 00:00:17,080 --> 00:00:21,480 Entonces, asignar nuestros pedidos a los usuarios no es demasiado difícil, tenemos acceso a nuestra tienda completa aquí, para 5 00:00:21,520 --> 00:00:29,140 que podamos obtener el ID de usuario llamando a getState. auth. userId, eso es todo, esto 6 00:00:29,140 --> 00:00:33,270 nos da el ID de usuario del usuario actualmente 7 00:00:33,340 --> 00:00:40,030 conectado y ahora podemos inyectar esto aquí y reemplazar el U1 codificado con ID de usuario. 8 00:00:40,030 --> 00:00:46,840 Por supuesto, no solo para agregar pedidos, sino también para buscar pedidos porque queremos obtener los pedidos del usuario 9 00:00:46,900 --> 00:00:49,060 que ha iniciado sesión actualmente. 10 00:00:49,060 --> 00:00:55,540 Entonces, aquí, también recibamos ese segundo argumento, obtenga nuestro ID de usuario y aquí intercambiemos comillas 11 00:00:55,540 --> 00:01:03,640 simples por ticks posteriores para que podamos usar esta inyección dinámica conveniente aquí y luego reemplazar o interpolar como se 12 00:01:03,640 --> 00:01:10,940 llama esta cadena aquí agregando el ID de usuario. Así que ahora también se asegura de que los pedidos se almacenen correctamente, pero por supuesto 13 00:01:10,940 --> 00:01:11,880 no se trata 14 00:01:11,900 --> 00:01:18,160 solo de los pedidos, sino que los productos también deben almacenarse de esa manera. Debemos asegurarnos de que cuando creamos un 15 00:01:18,160 --> 00:01:23,000 producto, realmente agreguemos nuestra identificación de propietario, eso es algo que actualmente 16 00:01:23,020 --> 00:01:26,960 no estamos haciendo y eso es algo que deberíamos hacer. 17 00:01:27,100 --> 00:01:33,200 Así que aquí, en realidad también quiero obtener el ID de usuario aquí en crear producto y cuando luego 18 00:01:33,370 --> 00:01:39,380 envío mi solicitud para crear un nuevo producto, no solo quiero establecer el título, la descripción, etc., también quiero 19 00:01:39,400 --> 00:01:39,920 establecer 20 00:01:39,970 --> 00:01:48,130 un propietario El campo de identificación y el nombre exacto dependen de usted, que es igual al ID de usuario del usuario conectado y eso 21 00:01:48,130 --> 00:01:49,720 es ahora algo completamente 22 00:01:49,720 --> 00:01:51,610 nuevo, ahora realmente comenzamos a mapear 23 00:01:51,610 --> 00:01:59,560 productos a un usuario, algo que solo hacíamos de manera ficticia antes. Esto también significa que cuando enviamos un producto creado aquí, 24 00:01:59,560 --> 00:02:05,980 quiero pasar una nueva información, también quiero agregar el ID del propietario allí y también señalar el 25 00:02:06,490 --> 00:02:11,520 ID de usuario aquí y eso significa que en el reductor de productos, 26 00:02:11,890 --> 00:02:16,310 tenemos que respetar esto y allí, en lugar de codificar esta 27 00:02:16,540 --> 00:02:24,130 ID aquí, ahora podemos obtener esto de nuestra acción. productData, de la identificación del propietario allí porque eso 28 00:02:24,580 --> 00:02:28,200 es lo que acabo de agregar allí. 29 00:02:28,210 --> 00:02:33,990 Entonces, aquí productos, agregué ID de propietario, agregué esta clave a los datos del producto, a la acción 30 00:02:34,090 --> 00:02:39,910 que despacho, ahora en el reductor, tenemos que usar eso, extraerlo aquí y usarlo como una identificación de propietario 31 00:02:39,910 --> 00:02:42,230 del producto que creamos localmente en Redux 32 00:02:42,340 --> 00:02:49,780 Por supuesto, esto también significa que aquí, cuando obtengo los productos que pertenecen a ese usuario, también quiero asegurarme 33 00:02:49,780 --> 00:02:53,190 de que filtre correctamente para la identificación correcta. 34 00:02:53,800 --> 00:02:58,960 Entonces, cuando llamamos a los productos establecidos aquí, quiero asegurarme de que los 35 00:02:58,960 --> 00:03:07,540 productos del usuario se filtren realmente hacia el usuario conectado, por lo que en el creador de acciones de productos, cuando buscamos todos 36 00:03:07,540 --> 00:03:16,190 los productos, aquí, por supuesto, quiero buscar todos los productos, pero allí, también quiero poder obtener mi estado para poder obtener mi ID 37 00:03:16,400 --> 00:03:21,920 de usuario del estado porque luego, cuando creamos los productos cargados, no solo quiero 38 00:03:21,950 --> 00:03:28,350 reenviarlos, también quiero agregar un nuevo usuario clave de productos para mi objeto de acción donde tomo 39 00:03:28,400 --> 00:03:37,590 los productos cargados y aquí los filtro y miro cada producto y si el ID del propietario del producto, si es igual al ID de 40 00:03:37,650 --> 00:03:43,590 usuario, quiero conservarlo porque entonces es un producto creado por el usuario actualmente conectado, de 41 00:03:43,590 --> 00:03:44,290 lo 42 00:03:44,340 --> 00:03:45,840 contrario no lo conservaré. 43 00:03:45,840 --> 00:03:51,040 Todavía es parte del producto cargado que paso al producto, pero no es parte de los productos que pasé 44 00:03:51,040 --> 00:03:52,510 a los productos del usuario 45 00:03:52,860 --> 00:03:58,170 y eso me permite volver al reductor y allí en los productos establecidos, los productos del usuario se inicializan no 46 00:03:58,200 --> 00:04:04,860 filtrando aquí sino configurando es igual a los productos de usuario de acción que ahora toman los productos filtrados filtrados en el creador de acción 47 00:04:05,160 --> 00:04:12,290 con la lógica que acabamos de escribir donde llevamos el ID de usuario. Esto asegura que solo veamos los productos 48 00:04:12,560 --> 00:04:18,260 que realmente creamos y que no vemos el producto de otros usuarios. 49 00:04:18,270 --> 00:04:25,310 Ahora, por supuesto, ahora también podemos asegurarnos de que en nuestra tienda de productos aquí, no 50 00:04:25,310 --> 00:04:28,460 comencemos con nuestros productos ficticios, sino 51 00:04:28,460 --> 00:04:37,440 que comencemos con una matriz vacía en ambos casos aquí. Esto también significa, por supuesto, que ahora si guardamos esto e 52 00:04:37,440 --> 00:04:41,230 iniciamos sesión, deberíamos poder ver nuestro producto anterior, aquí está, 53 00:04:41,310 --> 00:04:42,020 pero 54 00:04:42,030 --> 00:04:45,010 si voy al administrador, no lo vemos 55 00:04:45,090 --> 00:04:50,340 allí y eso tiene mucho sentido porque Este producto se creó anteriormente en el 56 00:04:50,340 --> 00:04:58,650 curso y, por lo tanto, no tiene ID de propietario. Este producto no tiene ID de propietario, por lo que no está incluido en ningún producto de usuarios, lo 57 00:04:58,650 --> 00:05:01,980 cual es genial porque ahora tengo un buen ejemplo de que todavía no hay 58 00:05:02,010 --> 00:05:04,190 productos, tal vez también deberíamos mostrar un mensaje aquí. 59 00:05:04,320 --> 00:05:07,050 Como nota al margen en los pedidos, tampoco vemos nada 60 00:05:07,050 --> 00:05:12,720 y tal vez deberíamos mostrar un mensaje aquí también porque los pedidos para U1 ya no son una identificación de usuario 61 00:05:12,720 --> 00:05:13,450 válida, por 62 00:05:13,470 --> 00:05:18,680 lo que estos pedidos nunca se cargan para ningún usuario y eso es bueno porque así es como debería ser. 63 00:05:18,680 --> 00:05:23,840 Así que ahora con eso, solo ajustaré un poco estas páginas para mostrar un mensaje si no podemos cargar ningún dato. 64 00:05:23,870 --> 00:05:32,620 Entonces, aquí en la pantalla de productos de usuario, si la longitud de los productos de usuario es igual a cero, entonces no quiero devolver mi lista 65 00:05:32,620 --> 00:05:41,090 plana, sino que devolveré una vista aquí donde tengo un texto donde digo que no se encontraron productos, tal vez comience a crear algunos y necesitaremos 66 00:05:41,110 --> 00:05:46,810 configurar algunos estilos allí, también tenemos que importar la vista y el texto, de lo contrario no 67 00:05:46,820 --> 00:05:49,520 podemos mostrar esto y ahora haré un 68 00:05:49,520 --> 00:05:51,460 estilo en línea rápido y 69 00:05:51,680 --> 00:05:59,060 sucio aquí con Flex One, justifique centro de contenido y centro de elementos de alineación, por supuesto, también puede asignar su propia fuente 70 00:05:59,090 --> 00:06:04,340 aquí al texto y así sucesivamente, simplemente lo haré así y luego lo copiaré y lo 71 00:06:04,340 --> 00:06:09,070 moveré a la pantalla de pedidos, asegúrese de importar la vista y texto allí 72 00:06:09,170 --> 00:06:12,060 también y luego aquí también podemos agregar esta verificación, 73 00:06:12,110 --> 00:06:18,350 si la longitud de los productos del usuario está vacía, por supuesto, aquí deberíamos verificar la longitud de los 74 00:06:18,410 --> 00:06:24,010 pedidos, no la longitud de los productos del usuario, pero si está vacía, digo que no se 75 00:06:24,110 --> 00:06:28,910 encontraron pedidos, tal vez comience a ordenar algunos productos como ese y con eso, 76 00:06:28,910 --> 00:06:31,940 deberíamos ver ese texto si no se encuentra nada. 77 00:06:31,940 --> 00:06:41,090 Entonces, si ahora vuelvo a intentarlo e inicio sesión muy rápido y vamos a la página de administración, vemos el texto aquí y si vamos a 78 00:06:41,160 --> 00:06:42,630 la página de 79 00:06:42,630 --> 00:06:44,540 pedidos, también vemos el texto aquí. 80 00:06:44,640 --> 00:06:46,460 Así que ahora está funcionando como debería. 81 00:06:46,620 --> 00:06:55,470 Si ahora creo un nuevo producto, por ejemplo, una bufanda, digamos con una pequeña 82 00:06:55,470 --> 00:07:03,190 URL que seleccioné por $ 55. 99, una bufanda de lana, si hago eso y lo 83 00:07:03,210 --> 00:07:12,060 envío, esto funciona bien y también se muestra aquí bajo admin, también se muestra bajo productos, por supuesto, también podríamos filtrarlo si lo 84 00:07:12,060 --> 00:07:16,650 desea, pero por qué no, por qué no lo tenemos aquí 85 00:07:16,650 --> 00:07:18,290 también y si 86 00:07:18,380 --> 00:07:26,840 agrego esto al carrito y hago clic en ordenar ahora, ahora aquí bajo pedidos, lo vemos y en Firebase, también vemos que 87 00:07:26,840 --> 00:07:32,460 bajo pedidos ahora tenemos un nodo con nuestro ID de usuario con nuestro pedidos. 88 00:07:32,490 --> 00:07:35,670 Entonces, esto realmente está funcionando como debería en esta aplicación 89 00:07:35,670 --> 00:07:39,960 y, por lo tanto, ahora aquí, tenemos una configuración con la que podemos trabajar.