Firebase no proporciona estrictamente una API para chatear. Firebase proporciona un contenedor alrededor de una base de datos sin SQL con actualizaciones en tiempo real utilizando una conexión bidireccional persistente.
Esto significa que puede guardar los datos que desee y luego verlos para ver cuándo cambian. Aunque este tipo de tecnología se adapta bien a las aplicaciones de mensajería, también se puede usar para mucho más que eso.
Para crear una aplicación de chat, debe tener tres entidades principales: usuario, hilo y mensaje. En Firebase, los usuarios y los hilos deben tener sus propias ramas en la base de datos y los mensajes deben estar contenidos dentro de la rama de hilos.
- ¿Hay alguna aplicación para iPhone que inicie mail.app directamente en la bandeja de entrada (no componer)?
- ¿Cuáles son los posibles casos de uso para un iBeacon CMS?
- ¿Cómo aprueba Apple las aplicaciones sociales de iOS que requieren usuarios antes de que el producto funcione?
- ¿Qué tan bueno es el Blackberry OS en comparación con Android, Windows e iOS?
- ¿Debo actualizar mi iPhone 4 a iOS 9? No me actualicé a iOS 8.
Firebase se basa completamente en la idea de que los datos se almacenan en una estructura similar a un árbol donde cada rama está representada por una ruta de estilo URL.
La mejor manera de almacenar entidades como esta es usar el patrón:
[tipo de entidad] / [id de entidad]
Esto significa que si tiene el tipo de entidad y la identificación, puede acceder de inmediato a los datos de la entidad
Un diseño típico para una aplicación de chat sería así:
usuarios / [identificación de usuario] / meta / [metadatos de usuario]
/ hilos / [id de hilo]
hilos / [id de hilo] / meta / [metadatos de hilo]
/ messages / [id. de mensaje] / [contenido del mensaje]
/ usuarios / [identificación de usuario]
Así que veamos qué hará la aplicación cuando se inicie:
- Crear un nuevo usuario: enviar datos a los
users/[user id]/
- El usuario inicia una conversación con otro usuario para que cree un nuevo hilo en la ruta de
threads/[thread id]
. - Agregue los identificadores de usuario para ambos usuarios a la ruta
threads/[thread id]/
users. Esto significa que cuando un usuario descarga un hilo, también puede obtener una lista de los usuarios en el hilo. - En este punto, el hilo está completo. Sin embargo, todavía tenemos que agregar a los usuarios al hilo. Entonces agregamos la identificación del hilo a los
users/[user id]/thread
ruta delusers/[user id]/thread
. - Los usuarios observarán esta ruta y cuando se agregue una nueva entrada, sabrán que han sido invitados a un hilo. Como tienen el id. De hilo, pueden crear una ruta al subproceso de datos de
thread/[thread id]
- Cuando un usuario se une a un hilo, escuchará los
threads/[thread id]/messages
ruta dethreads/[thread id]/messages
. Esto les permite ver cuándo se ha recibido un nuevo mensaje.
Este es el enfoque básico para la mensajería en Firebase. Si desea ver un ejemplo completo con una funcionalidad más compleja, puede consultar un mensajero móvil multiplataforma que desarrollé. Es de código abierto bajo la licencia MIT y puede acceder a los proyectos de Github aquí.