1 00:00:02,180 --> 00:00:05,750 Con la base de datos inicializada, asegurémonos de que podamos almacenar datos allí. 2 00:00:05,750 --> 00:00:13,460 Así que de vuelta en la base de datos. js en la carpeta de ayudantes, podemos agregar una nueva constante, insertar 3 00:00:13,460 --> 00:00:14,850 lugar, por ejemplo, que 4 00:00:15,110 --> 00:00:21,650 exporto y ahora aquí quiero obtener el título del lugar, quiero obtener la imagenUri, quiero obtener la dirección y también un 5 00:00:21,930 --> 00:00:27,770 latitud y longitud, por lo que quiero obtener todos los datos que componen un lugar y allí, ahora 6 00:00:27,800 --> 00:00:33,950 quiero insertar el lugar en la base de datos. Para eso, usaremos la misma sintaxis que aquí, 7 00:00:33,950 --> 00:00:39,890 así que solo puedo copiar esto porque también quiero tener una promesa como envoltorio aquí para poder 8 00:00:39,890 --> 00:00:45,430 usar cómodamente y atrapar o asincronizar en el lugar donde llamo lugar de inserción pero, 9 00:00:45,560 --> 00:00:49,010 por supuesto, la consulta que ejecuto ahora es diferente. 10 00:00:49,010 --> 00:00:52,380 En lugar de crear una tabla, ahora quiero insertar 11 00:00:52,400 --> 00:00:56,620 datos en la tabla y eso se hace con el comando Insertar en. 12 00:00:56,660 --> 00:01:02,450 Ahora debe especificar la tabla y esos lugares y luego entre paréntesis, los campos que desea orientar allí y, 13 00:01:02,450 --> 00:01:03,380 por supuesto, 14 00:01:03,410 --> 00:01:08,840 quiero orientar todos los campos excepto la ID porque, como mencioné, eso se generará automáticamente, lo cual es 15 00:01:08,840 --> 00:01:10,320 muy conveniente. Por supuesto, 16 00:01:10,520 --> 00:01:15,510 pero quiero apuntar a mi campo de título y ahora debe asegurarse de que coinciden con 17 00:01:15,510 --> 00:01:17,360 los nombres que configuró allí para 18 00:01:17,450 --> 00:01:20,150 sus columnas, debe coincidir con estos nombres aquí ahora. 19 00:01:20,180 --> 00:01:24,480 El orden no tiene que ser el mismo, pero el nombre es importante, por 20 00:01:24,500 --> 00:01:27,400 lo que quiero apuntar al título, la imagenUri, 21 00:01:27,410 --> 00:01:30,360 ese también es un nombre que elegí allí, ¿verdad? 22 00:01:30,440 --> 00:01:32,660 Entonces imageUri, dirección, latitud y 23 00:01:32,660 --> 00:01:34,610 longitud, y ahora 24 00:01:34,610 --> 00:01:38,110 necesitamos especificar qué valores deben ir allí. 25 00:01:38,120 --> 00:01:44,260 Para ello, agregue la palabra clave de valores aquí después de esta lista de columnas que desea orientar y 26 00:01:44,310 --> 00:01:50,330 ahora tiene otro par de paréntesis aquí donde especifica los valores que deben ir en cada una de 27 00:01:50,330 --> 00:01:51,310 estas columnas. 28 00:01:51,320 --> 00:01:56,120 Ahora, el orden de valores aquí, por supuesto, tiene que coincidir con el orden de los identificadores 29 00:01:56,150 --> 00:02:02,820 de columna que tiene aquí, por lo que el primer valor que ingrese aquí irá al título, imageUri es el segundo valor y así sucesivamente. 30 00:02:02,840 --> 00:02:08,570 Ahora, lo que podría hacer aquí es, por supuesto, usar marcas de retroceso en lugar 31 00:02:08,570 --> 00:02:15,970 de comillas simples y luego, por ejemplo, inyectar el título aquí y luego tener una coma y luego la imagenUri, etc. 32 00:02:15,970 --> 00:02:20,270 Podría hacer eso y funcionaría, pero esto no 33 00:02:20,290 --> 00:02:21,940 sería bueno, esto 34 00:02:21,940 --> 00:02:32,350 es inseguro, abre una puerta para un patrón de ataque llamado inyección SQL, donde los usuarios podrían insertar código malicioso allí y 35 00:02:32,350 --> 00:02:37,240 ejecutar otras consultas que podrían romperse la base de datos. 36 00:02:37,240 --> 00:02:42,210 Por supuesto, en esta aplicación donde es una base de datos local solo en el dispositivo de este usuario, eso 37 00:02:42,210 --> 00:02:47,830 podría no ser súper malo, pero aún así queremos defendernos de esto y, por lo tanto, aquí, en realidad, usa un par de marcadores 38 00:02:47,850 --> 00:02:52,960 de posición, agrega signos de interrogación aquí y necesita para agregar tantos signos de interrogación como sea necesario para ingresar valores. 39 00:02:53,050 --> 00:02:58,450 Entonces, aquí estoy ingresando cinco valores, por lo tanto, aquí tengo cinco signos de interrogación separados por comas. 40 00:02:58,540 --> 00:03:03,700 Ahora los valores concretos para los signos de interrogación se proporcionan en el segundo argumento que pasa 41 00:03:03,700 --> 00:03:07,990 para ejecutar SQL, esta matriz de argumentos. Anteriormente estaba vacío, ahora completamos 42 00:03:08,020 --> 00:03:11,860 los argumentos en el orden en que los necesitamos, 43 00:03:11,860 --> 00:03:19,570 así que primero titula, luego imageUri y así sucesivamente, y el paquete SQL intercambiará estos signos de interrogación por 44 00:03:19,810 --> 00:03:27,030 nuestros valores, pero no antes de validarlos para garantizar que El ataque de inyección no puede suceder. 45 00:03:27,070 --> 00:03:33,050 Entonces obtenemos una validación automática adicional al usar este enfoque y luego podemos ingresar el título aquí, luego 46 00:03:33,160 --> 00:03:36,040 el segundo dato fue la imagen Uri, luego necesitamos 47 00:03:36,280 --> 00:03:37,450 la dirección, 48 00:03:37,450 --> 00:03:40,210 luego necesitamos la latitud y luego necesitamos la 49 00:03:40,240 --> 00:03:47,310 longitud, entonces esto es cómo pasamos nuestros datos a esta consulta. Ahora, en estas funciones de éxito, como mencioné, el 50 00:03:47,320 --> 00:03:52,510 primer argumento siempre es como la repetición de su consulta, pero el segundo argumento 51 00:03:52,510 --> 00:03:56,540 es el error o aquí el resultado de esta consulta y 52 00:03:56,650 --> 00:04:02,910 aquí quiero resolver este resultado para que en el lugar donde llamamos lugar de inserción, en realidad 53 00:04:02,910 --> 00:04:09,490 podemos escuchar la resolución de la promesa y obtener nuestro resultado de esta consulta, que debería ser alguna 54 00:04:09,490 --> 00:04:12,640 información sobre el registro que se creó. 55 00:04:12,650 --> 00:04:18,730 Así que ahora podemos llamar al lugar de inserción y, por supuesto, el lugar donde quiero volver a llamarlo es mi archivo de acciones 56 00:04:18,730 --> 00:04:19,370 de lugares. 57 00:04:19,610 --> 00:04:21,810 Allí movemos la imagen, ahora también 58 00:04:21,830 --> 00:04:28,700 quiero llegar a mi base de datos y agregar una entrada. Para hacer eso aquí en primer lugar, 59 00:04:28,910 --> 00:04:40,980 importemos este método de inserción de lugar desde la carpeta de ayudantes y allí, desde el archivo db y con el importado, en lugar agregado después de resolver 60 00:04:41,100 --> 00:04:46,450 nuestro sistema de archivos y así sucesivamente, aquí, por supuesto, entonces también, 61 00:04:46,470 --> 00:04:52,290 todavía en el bloque try catch, intente insertar datos en la base de datos. 62 00:04:52,380 --> 00:04:53,520 Esto también puede 63 00:04:53,520 --> 00:04:57,600 fallar, por lo que tenerlo en un bloque de prueba no es la peor idea. 64 00:04:57,630 --> 00:05:03,930 Entonces, aquí puedo llamar al lugar de inserción y eso devuelve una promesa porque tenemos nuestra propia promesa allí, así 65 00:05:03,930 --> 00:05:05,370 que podemos esperar esto 66 00:05:05,730 --> 00:05:11,460 y obtener mi resultado de DB a partir de entonces, así que lo guardaré en un lugar 67 00:05:11,460 --> 00:05:17,200 constante y ahora inserto, por supuesto necesita un título, una imagen Uri, una dirección, una latitud y longitud. 68 00:05:17,270 --> 00:05:19,960 Ahora, por lo tanto, reenviaré mi título que 69 00:05:19,960 --> 00:05:27,240 ya tengo, reenviaré la nueva ruta que es mi imageUri y ahora para la dirección, usaré una dirección ficticia porque todavía no tenemos 70 00:05:27,240 --> 00:05:29,700 una dirección real. Para la latitud, 71 00:05:29,700 --> 00:05:35,760 usaré un número ficticio de 15. 6 y para la longitud, digamos 12. 3) 72 00:05:35,760 --> 00:05:39,750 Ahora, esto podría estar en el medio del océano, no lo sé, 73 00:05:39,780 --> 00:05:45,730 pero al menos tenemos algunas coordenadas aquí que podemos usar por ahora hasta que podamos obtener una ubicación real. 74 00:05:45,750 --> 00:05:51,960 Ahora, por supuesto, este resultado de db es interesante, así que vamos a registrarlo en la consola y, por cierto, asegurémonos de que solo 75 00:05:51,960 --> 00:05:57,730 despachemos esta acción y, por lo tanto, toquemos nuestra tienda Redux si tenemos éxito tanto con el sistema de archivos como 76 00:05:57,730 --> 00:06:00,330 con la acción de la base de datos, así 77 00:06:00,330 --> 00:06:06,690 que dentro del intente bloquear y ahora, echemos un vistazo a esto. Ahora deberíamos poder almacenar datos en la 78 00:06:06,690 --> 00:06:07,740 base de 79 00:06:07,770 --> 00:06:11,790 datos, así que probémoslo en Android, donde podemos tomar una 80 00:06:11,790 --> 00:06:14,240 imagen, esta es una prueba. 81 00:06:14,270 --> 00:06:24,980 Tomemos una imagen aquí y veamos si todo eso funciona recortando esa imagen y guardando este lugar. 82 00:06:25,090 --> 00:06:26,280 Esto funciona y 83 00:06:26,380 --> 00:06:31,380 aquí vemos algunos resultados, vemos que es el resultado de nuestra acción de base de datos 84 00:06:31,480 --> 00:06:37,000 y vemos que una fila se vio afectada porque se insertó una fila y también recuperamos la ID 85 00:06:37,000 --> 00:06:38,460 que se creó automáticamente. 86 00:06:38,500 --> 00:06:41,710 Aquí se trata de una identificación numérica, pero por supuesto no hay 87 00:06:41,710 --> 00:06:47,920 problema, por lo que ahora también podemos usar esta identificación en nuestro reductor en lugar de crear manualmente esta identificación de instantánea 88 00:06:47,920 --> 00:06:49,060 de estado aquí. 89 00:06:49,060 --> 00:06:51,520 Así que es una pequeña mejora, 90 00:06:51,520 --> 00:06:59,600 cuando despachamos nuestra acción aquí en los datos del lugar, ahora también quiero proporcionar la ID y esa ID se puede obtener de 91 00:06:59,600 --> 00:07:06,170 la constante del resultado de la base de datos y allí, está en el campo Insertar ID aquí, como 92 00:07:06,170 --> 00:07:13,000 puede ver. , así que accedamos a insertar ID aquí. Ahora en el reductor, por lo tanto, ya no necesitamos generarlo de esta manera, sino que 93 00:07:13,000 --> 00:07:17,330 simplemente podemos referirnos a la acción. placeData. carné de identidad. 94 00:07:17,330 --> 00:07:22,100 Ahora tenga en cuenta que es un número, aquí realmente quiero tener una cadena, aunque 95 00:07:22,100 --> 00:07:28,760 también podría mantener un número, pero lo convertiré en una cadena aquí y con eso, ahora también estamos usando esa 96 00:07:28,760 --> 00:07:34,850 ID, estamos almacenando en la base de datos Por supuesto, ahora sería bueno cargar todos nuestros datos cada vez que se 97 00:07:34,850 --> 00:07:37,580 reinicia nuestra aplicación porque ahora, cuando se reinicia, los datos aún se 98 00:07:37,700 --> 00:07:39,950 pierden, en realidad no se pierden, no es una base 99 00:07:39,950 --> 00:07:45,230 de datos, pero no la vemos aquí porque no cargue esto en nuestra tienda Redux, que, por supuesto, son los datos que usamos 100 00:07:45,230 --> 00:07:46,640 en la aplicación en ejecución. 101 00:07:46,940 --> 00:07:50,840 Por lo tanto, debemos asegurarnos de que cargamos los datos en la tienda Redux cuando se inicia esta aplicación.