Aclara las conexiones de Firebase

Estoy un poco confundido sobre el modelo de fijación de precios de Firebase, la preocupación especial son las conexiones o conexiones precisamente más concurrentes.

Veamos un ejemplo de una aplicación móvil para iOS llamada FanZONE:

El usuario creará grupos durante los partidos de fútbol. Comentarán sobre el juego real y los comentarios se mostrarán inmediatamente en la pantalla de cada miembro.

¿Este escenario significa que cada usuario que participa en el comentario / visualización cuenta para una conexión?
Entonces, si un grupo contiene 100 usuarios que siguen activamente la pantalla y de vez en cuando comenta ¿hay 100 conexiones cada 90 minutos de duración?
¿Qué pasa con los usuarios que tienen la aplicación en segundo plano y la aplicación comprueba cada 5 minutos el puntaje? ¿Esta conexión también dura 90 minutos o solo una fracción de tiempo cada 5 minutos?

En su primer escenario, la respuesta corta es sí. Siempre y cuando los usuarios mantengan la pantalla donde haya una conexión de Firebase que les permita comentar / leer comentarios, tendrá una conexión simultánea por pantalla.

En su segundo escenario, esto depende de cómo desarrolle su aplicación. La API de Firebase te proporciona los métodos goOffline y goOnline ( https://www.firebase.com/docs/ios-api/Classes/Firebase.html#class_methods ) que te permiten controlar tu conexión. Si desea desconectarse durante 5 minutos, vuelva brevemente a conectarse en línea para verificar los puntajes y luego vuelva a desconectarse, luego solo mantendría una conexión de corta duración.

Las conexiones concurrentes son solo eso: conexiones establecidas al mismo tiempo. Entonces, si tiene 3 personas que usan su aplicación para verificar puntajes, la aplicación del usuario 1 se conecta a las 12:00 PM y la conexión dura 5 segundos, luego la aplicación del usuario 2 se conecta a las 12:01 PM durante 5 segundos y la del usuario 3 la aplicación se conecta en línea a las 12:02 PM por 5 segundos, entonces solo has tenido 1 conexión simultánea.

Si, por otro lado, las 3 aplicaciones de los usuarios se conectan a las 12:00 p.m. durante 5 segundos, entonces tendrás 3 conexiones simultáneas.

Podría utilizar esta misma estrategia goOffline / goOnline con su primer escenario, pero eso puede restarle valor a la experiencia si sus usuarios esperan conversar sobre un juego casi en tiempo real.

Además de la excelente respuesta de Mike P, aquí hay algunas otras discusiones sobre el mismo tema que pueden ser reveladoras.

De la página de precios de Firebase:

¿Qué es una conexión?

Una conexión es una conexión de red abierta a nuestros servidores. Es una medida de la cantidad de usuarios que usan su aplicación o sitio simultáneamente. Esto no es lo mismo que (y suele ser mucho más bajo) que la cantidad total de visitantes de su sitio o la cantidad total de usuarios de su aplicación. En nuestra experiencia, 1 concurrente corresponde a aproximadamente 1,400 visitas mensuales.

Nuestro Development Firebase tiene un límite estricto en la cantidad de conexiones permitidas. Sin embargo, todas las bases de fuego pagadas son “descartables”, lo que significa que el uso no está limitado y en su lugar se le cobrará por cualquier exceso. Medimos conexiones para planes pagos basados ​​en el percentil 95 de uso durante el mes.

De esta discusión de la lista de correo , por Andrew Lee (fundador de Firebase):

Recomiendo encarecidamente que no te preocupes, a menos que en realidad te encuentres chocando contra nuestros límites … la mayoría de los desarrolladores sobreestiman en exceso el número de usuarios concurrentes que tendrán. Una buena regla general es 1 concurrente = 1000 visitas mensuales para el sitio web típico. Para dispositivos móviles, la relación entre instalaciones y concurrentes a veces es incluso mayor (aunque varía considerablemente según su caso de uso). Nuestros planes son bastante generosos cuando se trata de usuarios simultáneos. Como punto de datos, nuestro propio sitio web podría operar cómodamente en el plan “gratuito” de Firebase la mayoría de los días. De hecho, más del 99.5% de todas las bases de fuego nunca alcanzan el límite concurrente de 50.

Por lo tanto, en pocas palabras, si está trabajando en un proyecto de hobby, es casi seguro que no alcanzará nuestro límite gratuito de 50 niveles simultáneos. Si es una empresa o una aplicación más grande, espero que encuentre nuestro plan de $ 49 / mes más rentable que gastar tiempo de ingeniería para saber cuándo ir a Online / goOffline para minimizar ese número.

En el extremo más alto (enormes aplicaciones empresariales con más de 10k concurrentes), ofrecemos precios personalizados que tienen una tasa más baja por concurrente.

Un usuario de evaluación comparativa y prueba de conexiones aquí en SO: cómo se calcula la conexión en Firebase

Otra pregunta similar aquí en SO: ¿Cómo se calculan las conexiones simultáneas?