¿Firebase Firechat es la mejor y más segura opción para el chat en tiempo real? ¿Cuál podría ser el costo?

La respuesta rápida, sí, Firebase es la mejor y más segura opción para la mayoría de los casos en que los usuarios la necesitarán. ¿FireChat es la mejor API de chat para usar en el chat? Tal vez, pero no recomendaría ninguna de esas API.

Trabajo para una compañía de desarrollo de aplicaciones a medida que se especializa en chat instantáneo, utilizamos Firebase para muchos de nuestros proyectos. A continuación, pondré algunas de las ventajas y desventajas de FireChat, luego agregaré algunos puntos adicionales de la mejor implementación que veo cuando uso el chat.

NOTA: Otros servicios incluirán muchas de las mismas ventajas y desventajas, esta respuesta intentará demostrar que Firebase es mejor en general en función de sus puntos fuertes. No estoy de acuerdo con que los otros servicios que ha mencionado sean inútiles. En mi experiencia, todos han sido excelentes (excelentes desarrolladores, documentación, etc.) pero Firebase es excepcional.

Ventajas de FireChat

  • Costo: Como mencionas en tu pregunta, Firebase es excelente para los desarrolladores principiantes. Puede obtener un buen nivel de usuarios en su aplicación antes de tener que comenzar a pagar por el servicio. Este nivel se ha establecido bien para que una vez que comience a pagar, tenga suficientes usuarios para monetizar su aplicación.
  • Soporte: Firebase ofrece un gran soporte y también tiene una gran comunidad para ofrecerles soporte. Debido al tamaño y la escala de su empresa, Firebase es ampliamente utilizado. Esto significa que si tiene problemas, hay una buena posibilidad de que otros lo hayan encontrado y resuelto, de lo contrario, hay muchas personas dispuestas a ayudar en Stackoverflow y otros foros.
  • Documentación: Firebase tiene una base de documentación enorme y excelentemente escrita. Su documentación también es extremadamente completa y se extiende a casi todas las características o funciones que desee implementar.
  • Seguridad: la seguridad está en ambas listas. La seguridad es fácil de configurar y comprender en su base de datos Firebase. El hecho de que te den la libertad de configurar y modificar es una verdadera fortaleza. Esto le permite personalizar su funcionalidad muy bien para su aplicación específica.
  • Velocidad: Firebase es súper rápido, lo cual es una característica muy importante para un chat en tiempo real.
  • Calidad: el código de Firebase está extremadamente bien escrito y excelentemente probado. En los 4 años que llevo trabajando con Firebase todavía tengo que encontrar un error con su código proporcionado.

Desventajas de FireChat:

  • Búsqueda: Firebase es muy malo para aplicaciones que requieren una búsqueda precisa. La búsqueda básica es posible pero no es particularmente sensible o rápida. Si necesita buscar caracteres almacenados en su base de datos, entonces necesita escribir un código complicado / lento o necesita usar otro marco para la búsqueda (RIP Parse que tenía excelentes consultas de búsqueda)
  • Notificaciones push: Firebase tiene notificaciones push pero requieren un servidor personalizado. Es una pena, ya que una característica interna sería increíblemente conveniente.
  • Almacenamiento de datos: Firebase no es la mejor base de datos para almacenar archivos de datos grandes. Se trata de texto excelente, pero si necesita cargar imágenes / videos grandes regularmente, entonces probablemente haya mejores servicios que podría usar.
  • Seguridad: Firebase es seguro pero no a prueba de balas. Si sus datos son altamente confidenciales, entonces vale la pena tener un servicio especializado en seguridad de datos.

Desde los puntos anteriores, debería poder ver que Firebase es un gran producto con sus principales desventajas en áreas muy específicas. Esto puede afectarlo dependiendo de su proyecto, pero a menudo se puede solucionar con otros marcos.

Yo diría que usar una API para chatear es muy limitante. En este sentido, usar FireChat es tan malo como usar cualquiera de esas otras API enumeradas. A continuación he enumerado algunas de las principales desventajas que veo al usar cualquier API de chat:

Ventajas de usar Firebase para chatear pero no FireChat:

  • Flexibilidad: Firebase es extremadamente flexible, descargar la API aumentará la flexibilidad de Firebase. Su imaginación es el límite de formas en que puede ser utilizada.
  • Control: Al usar una API, estás limitado por sus funciones y estructura. También está limitado al agregar nuevas funciones. El uso de FireChat reduce el control que tiene sobre el código ya que la estructura está completamente fija.
  • Personalización: similar a los puntos anteriores, cuando utiliza una API, renuncia a una gran cantidad de control a cambio de una mayor facilidad de uso. En este caso, no creo que valga la pena debido a la forma en que se escribe actualmente el código de Firebase. Codificar su chat usando Firebase, pero no a través de la API, le permitirá agregar nuevas funciones y modificar más fácilmente las actuales.

Como puede ver, Firebase se destaca cuando se usa para la mayoría de los proyectos. Cuando se cae es cuando un proyecto específico tiene algunos requisitos muy específicos que no se ajustan silenciosamente al modelo de Firebase. Es por eso que lo recomendaría al 95% de los desarrolladores: el otro 5% necesitará investigar qué es lo mejor para ellos.

El problema no es con SendBird, Layer o Sinch, sino el problema inherente con las API de Chat. Aunque FireChat cae en todas estas trampas, Firebase proporciona código para que pueda codificarlo usted mismo.

Nuestra compañía ha lanzado recientemente un componente de chat de código abierto, usando Firebase, en Github. Estos son chats de iOS y Android totalmente completos y compatibles que hemos lanzado con una licencia MIT. Esto significa que puede liberar y modificar el código sin obligación para nosotros. Ambos proyectos usan Firebase para el almacenamiento de mensajes y datos, pero usan Backendless para notificaciones push. Lo recomendaría sobre las otras API de chat, ya que le da el código fuente para modificar en lugar de depender de los marcos de las empresas.

¿Qué más podríamos usar?

Una desventaja final de Firebase (y todos los marcos que mencionó) es el hecho de que está utilizando el servicio de otra persona, lo que significa que depende de ellos. Obviamente, este es un problema con cada solución de chat, ya que requiere que uses su API para tu proyecto. La solución a esto podría ser XMPP, que es lo que muchos chats profesionales han cambiado a usar. La ventaja es que construye su servicio y lo configura directamente al servicio que ofrece. Nuestra empresa también se especializa en soluciones XMPP, puede consultarlas aquí.

¿Firebase es la mejor y más segura opción para el chat en tiempo real? SÍ. Al menos para mi. Es gratis hasta que alcances 100 conexiones simultáneamente. Es de Google, por lo que definitivamente no irá a la quiebra. ¿Alguien puede nombrar una plataforma / tecnología en Google que se detuvo de repente?

Además de la generosa oferta de Firebase, el SDK es fácil de usar. Para mí, este Firebase es casi perfecto para desarrolladores de equipos de un solo hombre como yo. Si pudieran implementar una funcionalidad de búsqueda, ¡sería perfecto!

Volviendo a una publicación anterior de buena pregunta
[Quickblox vs SendBird vs Layer.com] ¿Necesito tener mi propio backend?

Esto debería hacer ..