Para una aplicación híbrida (marco iónico), ¿es mejor tener API REST en servidores propios o utilizar proveedores de back-end como Firebase, Deployd o Backend, etc.?

Ambas soluciones tienen beneficios.

Usar Firebase es la respuesta fácil. Probablemente tendrá su aplicación en funcionamiento más rápido.

Pero es probable que tenga costos más bajos si ejecuta su propio servidor. Apache Usergrid parece relativamente fácil de configurar, por lo que puede valer la pena seguir esa ruta. Pero observe qué tan bien se escala y cuánto trabajo necesitará hacer para permitir que se escale.

Los cálculos reales que debe hacer son específicos de la aplicación. ¿Cuántos usuarios necesitas soportar? ¿Cuáles son los patrones de uso? Dado eso, ¿cuánto costará Firebase por usuario cada mes?

Finalmente, la parte clave: ¿cuánto dinero espera ganar por usuario / mes? Si esa cantidad es cómodamente más de lo que costará Firebase, entonces puede usar Firebase y finalizar su aplicación más rápidamente.

Cuando ejecuté el cálculo para una aplicación en la que estaba trabajando para un cliente, parecía probable que Firebase costara aproximadamente el doble de lo que se esperaba que la aplicación obtuviera ingresos netos. Si estaba trabajando en una aplicación compatible con publicidad gratuita, podría terminar pagando 10-100x en costos de alojamiento de lo que podría ganar a través de anuncios.

Es por eso que siempre termino creando mi propia infraestructura para mis proyectos personales. Si estoy trabajando en proyectos de clientes, a veces hay suficiente valor en tener menos código para escribir y mantener para ofrecer una solución como Firebase. Pero cuando es para mí, quiero minimizar los costos, y soy lo suficientemente rápido como para que solo tome un par de días conectar un servidor Node y una base de datos. Y luego lo ejecuto en una instancia EC2 barata o equivalente, escalando solo si es necesario.

Mi herramienta favorita actual es RethinkDB. Proporciona ganchos que puede usar con NodeJS y Socket.io para obtener el mismo tipo de actualización de cliente en tiempo real que ofrece Firebase. RethinkDB también tiene excelentes capacidades de consulta. Y tiene opciones de escala horizontal robustas, más robustas que MongoDB.

Buena suerte.

Depende del caso de uso de su aplicación.

Firebase y Deployd: bueno para crear aplicaciones en tiempo real como Chat, etc. pero no admite notificaciones push, datos relacionales, BLOB / almacenamiento de imágenes, etc.

UserGrid no está alojado y administrado por usted, lo que destruye todo el punto de Backend as a Service. UserGid no es compatible con notificaciones push, búsqueda, tiempo real y más.

¿ Tuviste la oportunidad de mirar CloudBoost.io ? CloudBoost admite almacenamiento, búsqueda, tiempo real, notificaciones push y más. Piense en CloudBoost como Parse + Firebase + Algolia, todo combinado en uno. También es de código abierto bajo la licencia Apache 2. Puede consultar el servicio alojado y administrado aquí: https://www.cloudboost.io

Usted sabe mejor que todos nosotros qué tipo de aplicación está creando. Firebase y el resto tienen sus ventajas, pero en aras de la flexibilidad del desarrollo de las operaciones del lado del servidor personalizado, necesitará su propia base de datos. Echa un vistazo a mLab (anteriormente Mongolab). Proporciona lo mejor de ambos mundos. Su infraestructura alojada al igual que Firebase y el resto (hago referencia a Firebase ya que son los únicos que he usado de su lista) pero obtiene una instancia de MongoDB para que tenga la flexibilidad de.

Recientemente leí que Firebase ahora admite el almacenamiento de archivos, por lo que debería agregarse a la funcionalidad que faltaba en su oferta.

Realmente depende de lo que tu aplicación necesite.

Me encanta construir cosas con Ionic + Firebase, creo que AngularFire hace que esto no sea más inteligente, y sigue mejorando.

Para mi nuevo proyecto, estoy creando un API REST con Django Rest Framework, porque realmente tiene más sentido tener una base de datos SQL para este proyecto en particular y dado que tengo un fondo (realmente) sólido como desarrollador de back-end de django, fue Una elección fácil.

Para completar otros mensajes, también mencionaría que cuando usa firebase, necesita una estructura muy buena para sus datos, o usa una API propia como complemento. De hecho, firebase solo debe usarse para sus capacidades en tiempo real, lo que le brinda excelentes devoluciones de llamada para sus solicitudes de API. De esta manera, no almacena una gran cantidad de matrices json y objetos que son inútiles.
Firebase debería almacenar eventos en mi opinión.

Depende de lo que tu aplicación necesite hacer. Hay un montón de cosas que puedes hacer en estos días usando varias soluciones de backend como servicio, como Firebase, etc. Sin embargo, es posible que necesites implementar tu propia implementación de servidor para algunas piezas, dependiendo de lo que tu aplicación deba lograr.

Si está buscando desarrollar un prototipo que requiera muchas iteraciones, entonces diría que use cualquier servicio en línea que admita REST. De lo contrario, recomendaría configurar su propio servidor, ya que tiene más control sobre lo que hace y sería más barato cuando tenga más usuarios.