En pocas palabras, Firebase es un servicio de base de datos externo. Ellos mismos se definen como:
"Un conjunto de servicios back-end de computación en la nube y plataformas de desarrollo de aplicaciones proporcionadas por Google" para obtener más información, consulte aquí: https://firebase.google.com/
Además de los servicios de bases de datos, también ofrecen servicios de autenticación e integración para varias aplicaciones. Las aplicaciones y los lenguajes de programación admitidos son: Flutter, Dart, C++, Android, IOS, JavaScript , Unity Engines y Java.
¿Por qué todo esto importa? Porque usamos Firebase en el desarrollo de nuestra aplicación. No solo eso, sino que usamos su servicio más popular: su servicio de base de datos.
Podemos preguntar, ¿por qué usar Firebase? Firebase es fácil . Al realizar cualquier tipo de proyecto de desarrollo que requiera que guarde datos de usuario en algunos formularios, necesitará una base de datos. Esto podría ser para almacenar los datos del usuario para su posterior análisis, modificación de datos, protección de datos, restauración de datos, etc. Esto se aplica a empresas, individuos y organizaciones, incluso a más grupos también.
Ahora que sabemos por qué usamos bases de datos, debemos hacer la siguiente pregunta. ¿Qué tipos de bases de datos son mejores para nosotros?
Exploremos estas diferencias. Mientras lo hacemos, intente adivinar en qué tipo de base de datos se encuentra Firebase ;) .
Bases de datos centralizadas : Esto es cuando la base de datos que se está utilizando para la aplicación se almacena en un lugar donde las personas que la utilizan tienen acceso físico directo. También pueden editar, mejorar, actualizar y reconstruir la base de datos de la forma que deseen. Esencialmente, tiene propiedad completa y capacidad de edición de la base de datos en todas las formas físicas, internas y en términos de infraestructura digital.
Bases de datos descentralizadas : esto es todo lo contrario de las bases de datos centralizadas. Son bases de datos basadas en web3. Son bases de datos donde los dispositivos de almacenamiento están repartidos entre diferentes dispositivos informáticos. Solo organizaciones específicas pueden personalizar y mejorar la funcionalidad interna de las bases de datos. Sus casos de uso son limitados. En su mayoría están hechos para aplicaciones web3, tokens y para alojar otros productos web3.
Para obtener más información sobre las bases de datos web3 que las explora más a fondo, consulte aquí: https://www.makeuseof.com/what-is-web3-storage-how-does-it-work/
DBaaS : este tipo de base de datos a menudo se denomina "sin servidor". Esto se debe a que con este tipo de base de datos, que es similar a las bases de datos centralizadas, no mantiene la base de datos localmente cerca de usted. La base de datos está alojada a través de una empresa de terceros y le permiten personalizar cierta infraestructura digital de su base de datos, pero nada más. El principal punto de venta de esta base de datos es la rentabilidad. En lugar de desperdiciar fondos para crear su propia base de datos centralizada, opta por subcontratar los esfuerzos. Alguien hace el trabajo de construcción sucio y puede alquilarles para usar sus servicios de base de datos. Obtiene una funcionalidad diferente para diferentes niveles de pago.
Opté por usar DBaaS. Firebase es un DBaaS. Lo opté por la naturaleza rentable de este modelo de base de datos.
Estoy haciendo una aplicación. Una de las funciones que tiene la aplicación es la capacidad de registrar, iniciar y cerrar sesión de usuarios. Como puede ver en la imagen de arriba, hice un nombre de usuario de prueba para registrarme y una contraseña de prueba. Una vez que presioné el botón "registrarse", la aplicación envió la información a mi base de datos relevante. La base de datos alojada en Firebase. Al intentar registrarme, permanecí en la misma página de la aplicación y nada cambió. Después de verificar los usuarios en mi Firebase, no se registró ningún usuario nuevo en ese momento. Esto significa que mi usuario no estaba registrado.
Necesitamos que nuestra aplicación reconozca a los nuevos usuarios. En esta etapa, un desarrollador mirará su código y puede mirar la Interfaz de procesamiento de aplicaciones (API) para Firebase y cómo lo llamaron en su código. También observarán las variables que definen a los usuarios para asegurarse de que estén definidas correctamente y que la funcionalidad sea buena. También pueden verificar si es necesario actualizar algo que interfiere o interactúa con la conexión a la base de datos, como las bibliotecas utilizadas o el enlace de la API de Firebase. Uno puede hacer todos estos pasos o más para encontrar la solución a la base de datos ignorando nuestras llamadas. Hay un problema.
Nada de esto se aplica a mí . ¿Por qué esto es tan?
La razón por la que no tuve que hacer ninguna de estas prácticas estándar de depuración es porque un poco antes de este nuevo intento, pude registrar nuevos usuarios en la base de datos. En una semana esto se detuvo de repente. Sin cambiar nada de mi código, el proceso que funcionó antes ya no funcionaba. Esto me confundió mucho y reemplacé repetidamente mi enlace de llamada API y lo puse en diferentes áreas. Organicé mis llamadas de referencia para mis bibliotecas y mis diferentes llamadas de archivos. Incluso me conecté en línea para preguntar si el servicio de base de datos de Firebase no funcionaba. Este no era el caso. Entonces estaba a punto de comenzar las prácticas estándar de depuración... ¡ Entonces finalmente encontré la solución ! estuvo en mis correos electrónicos todo el tiempo.
¡Sí, mi correo electrónico tenía la solución todo este tiempo! Al revisar mi correo electrónico después de días de estancamiento en este tema, encontré un correo electrónico de notificación de Firebase. Firebase me notificó que se había cortado el acceso a mi base de datos. Esto se debió a que, durante la configuración de la base de datos de Firebase, configuré el acceso a mi base de datos para que se cortara en una fecha determinada por motivos de seguridad. Me había olvidado de esta regla que agregué para mí. Me había olvidado de la fecha que especifiqué. Como resultado, cuando me interrumpieron, no me di cuenta hasta que revisé mi correo electrónico. A continuación podemos ver que configuré la base de datos para cortarme el 12 de marzo de 2023.
Para solucionar este problema, solo necesitaba actualizar las reglas para extender el marco de tiempo para mi fecha de "corte". Como se ve aquí:
Para solucionar el tema pongo el próximo plazo para el 29 de junio. De esta manera no volveré a tener interrupciones hasta esa fecha límite.
Uno puede preguntarse " ¿Por qué no configurarlo dentro de unos años o dentro de más meses para que no te moleste?" buena pregunta. No lo haré porque quiero algunos recordatorios trimestrales a lo largo del año para recordarme esta dependencia. No quiero establecerlo para un plazo a largo plazo y luego olvidarlo nuevamente y quedar atrapado en la misma situación un año después. Tenerlo repetidamente consciente en mi cerebro significaría que estoy pensando constantemente en todos los factores que pueden afectar el desarrollo de la aplicación, lo que será útil a medida que continúo con el proceso de desarrollo. Se podría llamar a esto una preferencia de aprendizaje.
Podemos ver que el procedimiento de autenticación de Firebase incluso devuelve un token de identificación de usuario como el identificador especial de los usuarios, así es como definitivamente sabemos que está registrado.
El desarrollo es divertido, pero siempre tenemos que ser conscientes de las pequeñas cosas. La mayoría de las veces, cuando hay problemas con la aplicación, lo más probable es que se deba a nuestro propio error de código. Sin embargo, a veces es posible que los problemas ni siquiera provengan de nuestro código. Realmente podría ser algo tan simple como una actualización necesaria o, en este caso, una simple revisión de las reglas de la base de datos.