7 days of WordPress plugins, themes & templates - for free!* Unlimited asset downloads! Start 7-Day Free Trial
Advertisement
  1. Code
  2. MongoDB

Cómo usar MongoDB Stitch en aplicaciones de Android

Read Time: 9 mins

Spanish (Español) translation by Leareny Guerrero (you can also view the original English article)

Con MongoDB Atlas, todo lo que se necesita son unos pocos clics en el navegador para poner en funcionamiento tu propio clúster de MongoDB en la nube. Al usarlo, puedes crear aplicaciones para Android e iOS que pueden servir a millones de usuarios de manera eficiente. Sin embargo, aún necesitarías un servidor back-end que pueda actuar como intermediario entre los dispositivos de tus usuarios y tu clúster. Lo necesitarías para hacer cumplir las políticas de seguridad, agregar un nivel de abstracción a tus operaciones CRUD, programar trabajos y para muchas otras tareas importantes.

MongoDB Stitch es una potente plataforma sin servidor que puede cumplir con todos tus requisitos de back-end. Además de proporcionar un control de acceso detallado a los datos en tu clúster MongoDB Atlas, ofrece un entorno informático basado en JavaScript que puedes utilizar para realizar una amplia variedad de operaciones del lado del servidor. En este tutorial, te mostraré cómo usar la plataforma en una aplicación de Android.

Prerrequisitos

Para seguir adelante, necesitarás:

1. Crea un clúster Atlas de MongoDB

MongoDB Stitch está diseñado para usarse con un clúster MongoDB Atlas. Puedes usar un clúster que ya tengas, pero te sugiero que crees uno nuevo para este tutorial.

Comienza iniciando sesión en tu cuenta de MongoDB Atlas y presionando el botón Crear un nuevo clúster.

MongoDB Atlas home pageMongoDB Atlas home pageMongoDB Atlas home page

En la siguiente pantalla, que te solicita detalles de configuración sobre tu nuevo clúster, elige cualquier proveedor de nube, una región que ofrezca un clúster de nivel gratuito M0, y presiona el botón Crear clúster.

Cluster creation wizardCluster creation wizardCluster creation wizard

Después de unos minutos, tendrás un nuevo clúster de nivel gratuito llamado Cluster0.

2. Crea una aplicación de MongoDB Stitch

Para asociar una aplicación Stitch con tu clúster, haz clic en el enlace Vincular aplicación. En la página que se abre a continuación, presiona el botón Crear nueva aplicación.

Ahora puedes escribir el nombre que desees para tu nueva aplicación Stitch. Después de hacerlo, asegúrate de que esté seleccionado el clúster correcto y presiona el botón Crear.

New Stitch app dialogNew Stitch app dialogNew Stitch app dialog

En este punto, tu aplicación Stitch, con cuotas gratuitas muy generosas, está lista.

Stitch app overviewStitch app overviewStitch app overview

La aplicación tiene una identificación única que necesitarás mientras desarrollas tu aplicación de Android. Puedes ver qué es yendo a la sección Clientes y abriendo la pestaña Java (Android).

Stitch app IDStitch app IDStitch app ID

3. Configura usuarios y reglas

Al utilizar MongoDB Stitch, puedes escribir de forma segura código de interfaz web y móvil para interactuar con tu clúster de MongoDB Atlas. Esto es posible porque no tendrás que incluir una cadena de conexión que contenga la dirección del servidor de tu base de datos, el nombre de usuario y la contraseña en tu código.

Los usuarios finales autenticados de tu aplicación Stitch obtienen acceso automáticamente a tu base de datos. Sin embargo, utilizando una o más reglas, puedes controlar con precisión qué documentos y campos pueden ver o modificar.

Para autenticar a tus usuarios, Stitch ofrece varios mecanismos de autenticación, incluida la autenticación anónima, la autenticación de correo electrónico/contraseña y la autenticación mediante proveedores populares de identidad federada. En este tutorial, usaremos autenticación anónima. Para configurarlo, ve a la sección Usuarios y abra la pestaña Proveedores.

List of authentication providersList of authentication providersList of authentication providers

A continuación, selecciona la opción Permitir que los usuarios inicien sesión de forma anónima, habilítala y presiona el botón Guardar.

Digamos que queremos permitir que nuestros usuarios anónimos trabajen solo con los documentos que poseen. Para crear una regla de este tipo, ve a la sección Reglas.

Debido a que las reglas se aplican a las colecciones, presiona el botón Agregar colección para crear una nueva colección ahora. En el formulario que aparece, asígnale un nombre y especifica a qué base de datos debe pertenecer. Después de hacerlo, selecciona la plantilla de reglas Los usuarios solo pueden leer y escribir sus propios datos.

Add new collection pageAdd new collection pageAdd new collection page

Al seleccionar la plantilla, se te pedirá que especifiques el nombre del campo en tu documento en el que almacenarás la ID de autenticación Stitch generado automáticamente por el usuario. Stitch utilizará este campo al decidir si un documento pertenece a un usuario o no. Di que el nombre es user_id y envía el formulario.

En la página que se abre a continuación, ahora puedes confirmar que solo los propietarios de los documentos de tu colección pueden realizar operaciones de lectura y escritura en ellos.

Collections permissions pageCollections permissions pageCollections permissions page

4. Prepara el proyecto de Android

Para poder usar Stitch en tu proyecto de Android Studio, debes agregar tu SDK oficial como una dependencia de implementation en el archivo build.gradle del módulo de tu aplicación.

Además, debes mencionar el ID único de tu aplicación Stitch en tu proyecto. Así que ve al archivo res/values​​/strings.xml y agréguelo como una etiqueta string.

5. Establece una conexión

Con una instancia de la clase StitchAppClient, puedes utilizar fácilmente todas las funciones que ofrece la plataforma Stitch. Para inicializar, initialize StitchAppClient, debes llamar al método initializeDefaultAppClient() y pasarle el ID de tu aplicación Stitch. Esto debe hacerse solo una vez en tu aplicación, preferiblemente tan pronto como se inicie.

Una vez que esté listo, puedes llamar al método getDefaultAppClient() para obtener una referencia al cliente. El siguiente código, que puedes agregar al método onCreate() de tu actividad, te muestra cómo:

A menos que tu usuario haya iniciado sesión en tu aplicación Stitch, no podrás realizar ninguna operación útil en tu clúster MongoDB Atlas. Por lo tanto, ahora debes iniciar la sesión del usuario llamando al método loginWithCredential(), que se ejecuta de forma asincrónica y devuelve un objeto Task. Además, debido a que eligiste la autenticación anónima como mecanismo de autenticación en la consola web de Stitch, asegúrate de pasar una instancia de la clase AnonymousCredential al método.

En este punto, si ejecutas la aplicación, Stitch te registrará automáticamente como un nuevo usuario y también te conectará en la aplicación. Además, si vuelves a la consola web de Stitch y abres la sección Usuarios, podrás ver que se ha agregado una nueva entrada a la lista de usuarios.

List of authenticated usersList of authenticated usersList of authenticated users

6. Insertar documentos

Después de una autenticación exitosa, puedes continuar y obtener una instancia de la clase RemoteMongoClient para comenzar a interactuar con tu clúster MongoDB Atlas. Para hacerlo, puedes llamar al método getServiceClient() y especificar que el nombre del servicio que desea es "mongodb-atlas". Así es cómo:

Recuerda que, gracias a la regla que creaste anteriormente en este tutorial, tu usuario solo puede realizar operaciones de lectura y escritura en tus propios datos. Además, tu usuario está limitado a trabajar solo con la base de datos y la colección que mencionaste en la consola web de Stitch.

Para obtener una referencia a la base de datos, llama al método getDatabase() y pásale tu nombre. De manera similar, para obtener una referencia a la colección, llama al método getCollection(), que devuelve un objeto RemoteMongoCollection.

Lo que agregues a la colección, por supuesto, depende de ti. A modo de ejemplo, digamos que queremos agregar documentos que contengan marcas de tiempo de todas las horas en las que el usuario abrió la aplicación.

Para crear un nuevo documento BSON, debe utilizar el constructor de la clase Document. Debido a que los objetos de Document son muy similares a los mapas, puedes usar el operador [] para agregarles pares clave-valor.

El siguiente código te muestra cómo crear un nuevo documento y agregarle una marca de tiempo:

Además de tus datos, todos tus documentos deben contener la ID de autenticación de Stitch del usuario. Sin ella, tus operaciones de inserción fallarán. Para obtener la ID de autenticación, puedes usar directamente la propiedad id del objeto it implícito disponible dentro del oyente en caso de éxito.

Ahora puedes insertar el documento llamando al método insertOne(). (Puedes leer sobre insertOne() el método y otras operaciones de escritura en la documentación de MongoDB para el controlador de Java). Debido a que se ejecuta de forma asíncrona, necesitarás otro escucha en caso de éxito para verificar si la operación de inserción se realizó correctamente.

Si ejecutas la aplicación ahora y verificas el panel Logcat de Android Studio, deberías poder ver una entrada de registro que se ve así:

Logcat panel displaying success messageLogcat panel displaying success messageLogcat panel displaying success message

7. Ejecutar consultas

Al llamar al método find() de tu objeto RemoteMongoCollection, puedes crear una consulta. (Puedes aprender más acerca de find() y sobre y otras operaciones de consulta en la documentación del controlador Java de MongoDB.) El método devuelve un objeto RemoteFindIterable, en el que puedes llamar a más métodos como sort() y limit() para administrar los resultados de la consulta. Por ejemplo, el siguiente código crea una consulta para encontrar los últimos cinco documentos creados por el usuario:

Para ejecutar la consulta, puedes llamar a tu método into(), que espera una lista como argumento. Como sugiere su nombre, carga los resultados de la consulta, que no son más que objetos Document, en la lista que tu le pasas. Se ejecuta de forma asincrónica, por lo que puede comenzar a usar la lista solo dentro de un escucha en caso de éxito.

Por ahora, para simplificar las cosas, usemos un widget TextView para mostrar los resultados de la consulta. Por lo tanto, agrega el siguiente código al archivo XML de diseño de tu actividad:

De vuelta dentro del escucha on-success, ahora puede recorrer la lista y crear una cadena concatenada que contenga todas las marcas de tiempo. Opcionalmente, puedes pasar las marcas de tiempo al método getRelativeDateTimeString() de la clase DateUtils para hacerlas más legibles. Una vez que la cadena está lista, puedes asignarla directamente al widget TextView. Así es cómo:

Si vuelves a ejecutar la aplicación, ahora deberías ver algo como esto en tu dispositivo:

App displaying list of timestampsApp displaying list of timestampsApp displaying list of timestamps

Conclusión

MongoDB Stitch es una plataforma sin servidor que puedes usar para crear aplicaciones modernas que pueden escalar fácilmente para manejar grandes cantidades de datos de usuario. En este tutorial, aprendiste a usarlo para autenticar a los usuarios de tus aplicaciones de Android de forma anónima y permitirles realizar de forma segura operaciones de lectura y escritura en tus clústeres de MongoDB Atlas.

Para obtener más información sobre MongoDB Stitch, consulta la documentación oficial.

Advertisement
Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on learning about the next big thing.
Scroll to top
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.