¿Qué tipo de API se necesita cuando intento crear un chat usando Firebase Server en iOS Swift?

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.

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:

  1. Crear un nuevo usuario: enviar datos a los users/[user id]/
  2. El usuario inicia una conversación con otro usuario para que cree un nuevo hilo en la ruta de threads/[thread id] .
  3. 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.
  4. 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 del users/[user id]/thread .
  5. 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]
  6. Cuando un usuario se une a un hilo, escuchará los threads/[thread id]/messages ruta de threads/[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í.