Comunicació síncrona entre diferents dispositius - Participem al xat


En aquest apartat seguim treballant amb l'objecte Firebase per permetre l'intercanvi d'informació entre dos dispositius.



Més concretament es pretén donar resposta a les preguntes següents:


  • Com podem enviar informació entre dos dispositius mitjançant l'objecte FirebaseDB?



En acabar l'apartat previ ja havíem aconseguit gestionar les altes i baixes dels participants al xat emmagatzemant-ne les dades a un FireBase. Ara programarem l'enviament i lectura de les intervencions dels participants en el xat.

Enviem intervencions

Les intervencions les introduim en el quadre de text TBEnvia i les enviem clicant el botó BEnvia tal com es veu en el següent bloc de codi:



Cada intervenció es grava a Firebase amb l'etiqueta de l'usuari que l'ha fet. El fet d'escriure en una etiqueta que porta el nom del participant permet:

  • Que quan s'executi l'esdeveniment Data Changed sapiguem qui ha intervingut.
  • Que s'esborrin les intervencions anteriors de tal forma que a FireBase tan sols tindrem el registre de la darrera intervenció de cada participant.

Aprofitant que FireBase ens avisa imediatament quan s'hi canvien les dades, anirem actualitzant tant el llistat dels participants al xat com les seves intervencions:



En la imatge anterior podem veure que hem ampliat el codi respecte la primera versió de l'esdeveniment Firebase.Datachanged. En aquesta segona versió, estem a l'escolta també de les intervencions, i en cas que n'hi hagi hagut alguna cridem a un procediment que anomenarem afegeix_intervencio que actualitzarà el quadre de text TBIntervencions.

Per a crear un procediment que rebi paràmetres, un cop creat el procediment mitjançant el desplegable Procedures del llistat de blocs, cliquem la icona que representa un engranatge i ens dóna l'opció d'afegir paràmetres al procediment:



Programarem el procediment afegeix_intervencio tal com segueix:



El procediment anterior afegeix la intervenció al TBIntervencions precedida del nom de l'usuari que l'ha fet. També s'assegura que no hi hagi més de 10 intervencions visibles per evitar problemes de visualització de les intervencions. Utilitzem el caràcter \n, indicador de salt de línia, per separar les intervencions i poder-les organitzar correctament.

Un cop creat i programat el procediment afegeix_intervencio, el tindrem disponible al llistat de procediments per incorporar-lo al codi associat a l'esdeveniment FirebaseDB1.DataChanged.