Hacer esto es muy posible. Desarrollé un sistema de mensajería completo (1 a 1 y chat grupal) usando Firebase. Está disponible en Github si quieres ver un ejemplo práctico.
Concepto 1
La base de datos Firebase funciona en una estructura de árbol. Para acceder a un dato, debe usar una URL que es una representación de la ruta a ese dato en particular en el árbol. Por ejemplo:
- Alguien está desarrollando una aplicación web para mí. Se han solicitado detalles de alojamiento con certificación SSL para que la aplicación se pueda cargar y probar. ¿Qué debo hacer?
- ¿Debo construir una aplicación web con herramientas que ya conozco o aprender nuevas?
- ¿Cuál es la diferencia entre una aplicación web y una página web?
- ¿Es posible iniciar sesión en un sitio a través de una aplicación web, incluso si ese sitio no tiene una API?
- ¿Alguien usa COP en Houdini?
/ users / 1 / [información del usuario 1]
/ 2 / [información del usuario 2]
Entonces la dirección para la información del usuario 1 sería:
http://your-name.firebaseio.com/users/1
Concepto 2
Para recibir actualizaciones en tiempo real, debe mirar una ruta. Esto es diferente a una base de datos normal donde es más común solicitar datos cuando los necesita con una consulta. Este concepto puede tardar un tiempo en acostumbrarse porque no hay una forma directa de “enviar” datos. En cambio, el usuario 1 agrega un observador a una ruta particular y el usuario 2 actualiza los datos en esa ruta.
Ejemplo
Ahora imagine que queremos permitir que dos usuarios se envíen datos entre sí. Primero, un usuario debe poder descubrir al otro usuario. Esto se puede hacer buscando su nombre de usuario o correo electrónico usando índices.
Ahora que el usuario 1 ha encontrado al usuario 2, quieren iniciar una conversación. Para hacer esto, crean un nuevo hilo en una nueva ruta:
/ hilos / 1 / mensajes / 1 / “hola”
/ usuarios / 1
/ 2
Arriba tenemos un nuevo hilo con id 1. La ruta del hilo contendrá una lista completa de hilos con diferentes identificadores. Dentro del hilo tenemos una ruta de mensajes que contendrá una lista de mensajes. También tenemos una ruta de usuarios. Es útil tener una ruta de usuarios por dos razones. En primer lugar, significa que los usuarios pueden saber qué otros usuarios están participando en el hilo y, en segundo lugar, significa que podemos usar reglas de seguridad para garantizar que solo los miembros puedan ver los mensajes.
El usuario 1 ahora agrega un observador a la ruta del thread/messages
para que cuando se agregue un nuevo mensaje, se les notifique.
Finalmente, el usuario 1 invitará al otro usuario al hilo agregando la identificación del hilo a sus datos de usuario
/ usuarios / 2 / hilos / 1
Cuando un usuario inicia sesión por primera vez, debe agregar un observador child-added
a la ruta de subprocesos en su propia área de datos de usuario. Esto significa que si otro usuario los invita a un hilo, recibirán una notificación.
El usuario 2 ahora recibe una notificación de que ha sido invitado al hilo 1. Como conocen la identificación, pueden crear una ruta a los datos. Luego también agregarían un observador a la ruta /threads/1/messages
.
¡Ahora ambos usuarios están observando la misma ruta, lo que significa que pueden enviarse mensajes mutuamente!