Cómo enviar datos push usando Firebase entre dos clientes

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:

/ 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!

Firebase viene con diferentes tipos de enfoques para enviar datos a los clientes y la forma más eficiente y adecuada es usar el token de registro. Supongo que sus clientes pertenecen a una cuenta de usuario, por lo tanto, cuando configure el servicio de notificación push, se generará un token de registro y será único para cada dispositivo / cliente.

Use estos tokens para enviar notificaciones, ya que son más rápidos que los canales / temas.

Creé un PoC para juegos por turnos entre dos clientes. Lo estoy usando para un juego de ajedrez en línea – Half Chess

El repositorio que tiene el código fuente para los juegos por turnos está alojado aquí: flipflopapp / turnbased-games-with-firebase. Sin embargo, no está completamente actualizado con las últimas mejoras. Puede consultarlo para ver cómo dos clientes pueden intercambiar datos, “para el caso de un juego basado en turnos”.

Puede usar su función de base de datos en tiempo real.

Su concepto para enviar datos entre dispositivos es simple:

1. Guarde los datos en su servidor Firebase.

2. Reciba datos de esa ubicación guardada.

Será mejor si sigues sus blogs y su canal de YouTube.

Solo tomé 1 semana para aprender Firebase (soy un principiante en Android) y otra semana para desarrollar una aplicación que lo use. Entonces es así de simple.

Por cierto, puedes ser uno de sus beta testers. Será lanzado la próxima semana. Es una aplicación para desarrolladores (solo Android por ahora).

He estado investigando lo mismo. Echa un vistazo a los siguientes enlaces:

Cómo enviar un mensaje de alerta a un usuario especial en línea con Firebase

Firebase: aplicación de presencia de muestra

Todavía no tengo un código de prueba de concepto, pero parece factible.

More Interesting

¿Cuáles son algunas de las mejores prácticas no conocidas al desarrollar aplicaciones Javascript para la web?

¿Cómo monetizo una aplicación web de búsqueda de viajes?

¿Cuál es la mejor aplicación de planificación de eventos en la web?

¿Qué tecnología es mejor para desarrollar aplicaciones web php o asp.net?

Si tengo una base de datos con millones de entradas y quiero encontrar elementos similares por título, ¿cuál debo elegir: MongoDB, Elasticsearch, MySQL, PostgreSQL u otro?

¿Preferiría asignar JSON a un modelo de objetos o usar JSON simple?

¿Existe una aplicación en Salesforce.com que pueda completar la ciudad / estado / país líder a partir del código de área del número de teléfono?

¿Cuál es el lenguaje de programación más adecuado para desarrollar aplicaciones web de gran escala?

¿Qué lenguaje de programación debo comenzar a aprender para un futuro en el desarrollo de aplicaciones web, aplicaciones web y Android?

¿Existe un sitio web de viajes que considere escalas de varios días al calcular el costo?

Si tuviera que crear una aplicación de chat escalable y concurrente en Java, ¿cómo la diseñaría?

¿Cuál es la mejor herramienta o servicio para mapear todos los flujos en una aplicación?

Desde una perspectiva de escalabilidad, ¿debería una startup adoptar NoSQL desde el primer día o debería convertirse gradualmente a medida que crecen la base de usuarios y los datos?

¿Cuáles son las mejores herramientas de creación de prototipos de aplicaciones web y móviles?

¿Por qué el desarrollo de juegos siempre parece años antes que el desarrollo web?