Android
Real Time
Implementando Consultas en Vivo en Android con Back4App
11 min
aplicación en tiempo real utilizando consultas en vivo introducción las consultas en vivo están destinadas a ser utilizadas en aplicaciones reactivas en tiempo real , donde solo usar el paradigma de consulta tradicional podría presentar algunos problemas, como un aumento en el tiempo de respuesta y un alto uso de red y servidor las consultas en vivo deben usarse en casos donde necesites actualizar continuamente una página con datos frescos provenientes de la base de datos, lo que a menudo ocurre en, pero no se limita a, juegos en línea, clientes de mensajería y listas de tareas compartidas esta sección explica cómo usar la consulta en vivo de back4app en un entorno de android a través de back4app este tutorial utiliza una aplicación básica creada en android studio arctic fox 2020 3 1 patch 1 con compilesdk 30 compilesdk 30 , minsdk 21 minsdk 21 y targetsdk 30 targetsdk 30 en cualquier momento, puedes acceder al proyecto completo a través de nuestros repositorios de github repositorio de ejemplo en kotlin repositorio de ejemplo en java objetivo aquí hay una vista previa de lo que vamos a lograr requisitos previos para completar este tutorial, necesitamos android studio una aplicación creada en back4app nota sigue el tutorial de nueva aplicación parse para aprender cómo crear una aplicación parse en back4app una aplicación de android conectada a back4app nota sigue el tutorial de instalación del sdk de parse para crear un proyecto de android studio conectado a back4app un dispositivo (o dispositivo virtual ) que ejecute android 4 1 (jelly bean) o superior 1 habilitar live query antes de comenzar a codificar, es necesario tener una clase en tu base de datos para habilitar live query para hacer eso, simplemente encuentra tu aplicación en el sitio web de back4app , y haz clic en tablero tablero > crear una clase crear una clase , como se muestra aquí ahora, para habilitar la función de consulta en vivo, inicie sesión en su cuenta en el sitio web de back4app , busque su aplicación y haga clic en configuración del servidor configuración del servidor , luego busque el bloque “url del servidor y consulta en vivo” y haga clic en configuraciones configuraciones luego, llegarás a una página como la de abajo en esta página necesitarás marcar la activa tu subdominio de back4app activa tu subdominio de back4app opción, la activa live query activa live query opción y todas las clases que deseas que live query se active, como se muestra a continuación es necesario activar webhosting para usar live queries, porque tu dominio funcionará como el servidor en vivo nota para saber más sobre webhosting mira tutorial de webhosting de back4app 2 configurar el cliente livequery github oficial de parse server tiene una implementación del cliente de live query para android https //github com/parse community/parselivequery android es necesario implementar el cliente oficial de live query, que funciona muy bien para hacerlo, agrega las siguientes líneas a tu aplicación app/build gradle app/build gradle archivo, en la sección de dependencias y sincroniza tu proyecto app/build gradle 1 dependencies { 2 3 // don't forget to change the line below with the latest version of parse sdk for android 4 implementation "com github parse community parse sdk android\ parse 1 26 0" 5 implementation 'com github parse community\ parselivequery android 1 2 2' 6 7 } en este proyecto, también crearemos una clase llamada mensaje mensaje , que contendrá nuestros mensajes 3 suscribirse a tu consulta para comenzar a usar live queries, primero crea un livequeryclient livequeryclient que gestionará las conexiones websocket por ti para hacer esto, tendrás que proporcionar el id de la aplicación, su clave de javascript y también una url de servidor de live query que configuraste en el primer paso 1 parse initialize(new parse configuration builder(this) 2 applicationid(getstring(r string back4app app id)) 3 clientkey(getstring(r string back4app client key)) 4 server(getstring(r string back4app server url)) 5 build());1 parse initialize(parse configuration builder(this) 2 applicationid(getstring(r string back4app app id)) 3 clientkey(getstring(r string back4app client key)) 4 server(getstring(r string back4app server url)) 5 build()) el código para inicializar livequeryclient livequeryclient es el siguiente 1 parselivequeryclient parselivequeryclient = parselivequeryclient factory getclient();1 val parselivequeryclient = parselivequeryclient factory getclient() tenemos un adaptador recyclerview llamado messageadapter messageadapter las funciones de messageadapter se activan cuando se agrega, elimina o actualiza un objeto aquí están nuestras messageadapter messageadapter funciones 1 public void additem(parseobject t) { 2 this list add(t); 3 notifyiteminserted(list size() 1); 4 } 5 6 public void removeitem(parseobject object) { 7 for (int i = 0; i < list size(); i++) { 8 if (list get(i) getobjectid() equals(object getobjectid())){ 9 list remove(i); 10 notifyitemremoved(i); 11 notifyitemrangechanged(i, list size()); 12 return; 13 } 14 } 15 } 16 public void updateitem(parseobject object) { 17 for (int i = 0; i < list size(); i++) { 18 if (list get(i) getobjectid() equals(object getobjectid())){ 19 list set(i,object); 20 notifydatasetchanged(); 21 return; 22 } 23 } 24 }1 fun additem(t parseobject?) { 2 list!! add(t!!) 3 notifydatasetchanged() 4 } 5 6 fun removeitem(`object` parseobject) { 7 for (i in list!! indices) { 8 if (list!!\[i] objectid == `object` objectid) { 9 list!! removeat(i) 10 notifyitemremoved(i) 11 notifyitemrangechanged(i, list!! size) 12 return 13 } 14 } 15 } 16 17 fun updateitem(`object` parseobject) { 18 for (i in list!! indices) { 19 if (list!!\[i] objectid == `object` objectid) { 20 list!!\[i] = `object` 21 notifydatasetchanged() 22 return 23 } 24 } 25 } luego, debes crear un parsequery parsequery para qué tipo de objeto deseas suscribirte una suscripción es un emisor de eventos, que generará eventos cuando ocurran cambios en un objeto que satisfaga tu consulta en este ejemplo, harás una consulta básica y te suscribirás a todos los cambios realizados en los message message objetos vea más sobre consultas y suscripciones en documentación oficial de consultas de parse 1 parsequery\<parseobject> parsequery = new parsequery<>("message"); 2 subscriptionhandling = parselivequeryclient subscribe(parsequery); 3 subscriptionhandling handlesubscribe(q > { 4 subscriptionhandling handleevent(subscriptionhandling event create, (query, object) > { 5 mainactivity this runonuithread(() > { 6 messagesadapter additem(object); 7 }); 8 }); 9 subscriptionhandling handleevent(subscriptionhandling event delete, (query, object) > { 10 mainactivity this runonuithread(() > { 11 messagesadapter removeitem(object); 12 }); 13 }); 14 subscriptionhandling handleevent(subscriptionhandling event update, (query, object) > { 15 mainactivity this runonuithread(() > { 16 messagesadapter updateitem(object); 17 }); 18 }); 19 });1 val parsequery = parsequery\<parseobject>("message") 2 subscriptionhandling = parselivequeryclient!! subscribe(parsequery) 3 subscriptionhandling!! handlesubscribe { subscriptionhandling!! handleevent(subscriptionhandling event create 4 ) { parsequery\<parseobject?>?, `object` parseobject? > 5 runonuithread { messagesadapter!! additem(`object`) } 6 } 7 subscriptionhandling!! handleevent(subscriptionhandling event delete 8 ) { parsequery\<parseobject?>?, `object` parseobject? > 9 runonuithread { messagesadapter!! removeitem(`object`!!) } 10 } 11 subscriptionhandling!! handleevent(subscriptionhandling event update 12 ) { parsequery\<parseobject?>?, `object` parseobject? > 13 runonuithread { messagesadapter!! updateitem(`object`!!) } 14 } 15 } nota estamos activando todos estos eventos en la aplicación también puedes activar estos eventos de crear, actualizar y eliminar desde back4app (desde la tabla o la consola de javascript) ¡está hecho! en este punto, tienes el conocimiento sobre cómo usar consultas en vivo para hacer aplicaciones reactivas en tiempo real en un entorno android y también cómo configurar consultas en vivo usando back4app ahora puedes comenzar a implementarlo en tu propia aplicación ahora estás listo para explorar las características principales de parse server https //www back4app com/product/parse server y los complementos de back4app https //www back4app com/product/addons