Clarifier les connexions Firebase

Je suis un peu confus à propos du modèle de tarification Firebase, les connexions ou plus précisément les connexions concurrentes sont particulièrement préoccupantes.

Prenons l’exemple d’une application mobile pour iOS appelée FanZONE:

L’utilisateur créera des groupes lors des matches de football. Ils commenteront le jeu et les commentaires seront immédiatement affichés sur chaque écran.

Ce scénario signifie-t-il que chaque utilisateur participant à la consultation / à la consultation compte pour une connexion?
Donc, si un groupe contient 100 utilisateurs qui suivent activement l’écran et commentent de temps en temps 100 connexions toutes les 90 minutes?
Qu’en est-il des utilisateurs qui ont l’application en arrière-plan et l’application vérifie chaque 5 minutes le score. Est-ce que cette connexion dure 90 minutes ou seulement une fraction de temps toutes les 5 minutes?

Dans votre premier scénario, la réponse courte est oui. Tant que vos utilisateurs conservent l’écran sur lequel vous avez une connexion Firebase leur permettant de commenter / lire des commentaires, vous disposerez d’une connexion simultanée par écran.

Dans votre deuxième scénario, cela dépend de la manière dont vous développez votre application. L’API Firebase vous fournit les méthodes goOffline et goOnline ( https://www.firebase.com/docs/ios-api/Classes/Firebase.html#class_methods ) qui vous permettent de contrôler votre connexion. Si vous souhaitez vous déconnecter pendant 5 minutes, revenez brièvement en ligne pour vérifier les scores, puis revenez en mode hors connexion, vous ne pourrez alors que créer une connexion pour une courte durée.

Les connexions simultanées ne sont que cela – des connexions établies en même temps. Donc, si vous avez 3 personnes qui utilisent votre application pour vérifier les scores, l’application de l’utilisateur 1 est mise en ligne à 12h00 et la connexion dure 5 secondes, puis l’application de l’utilisateur 2 est mise en ligne à 12h01 pendant 5 secondes et l’utilisateur 3 l’application est mise en ligne à 12h02 pendant 5 secondes, puis vous n’avez eu qu’une seule connexion simultanée.

Si, par contre, les applications des trois utilisateurs sont mises en ligne à 12h00 pendant 5 secondes, vous aurez 3 connexions simultanées.

Vous pourriez potentiellement utiliser cette même stratégie goOffline / goOnline avec votre premier scénario, mais cela pourrait nuire à l’expérience si vos utilisateurs s’attendent à discuter d’un jeu en temps quasi réel.

En plus de l’excellente réponse de Mike P, voici quelques autres discussions sur le même sujet qui pourraient s’avérer pertinentes.

De la page de tarification Firebase:

Qu’est-ce qu’une connexion?

Une connexion est une connexion réseau ouverte à nos serveurs. C’est une mesure du nombre d’utilisateurs qui utilisent votre application ou votre site simultanément. Ce n’est pas la même chose que le nombre total de visiteurs sur votre site ou le nombre total d’utilisateurs de votre application. Dans notre expérience, 1 concurrent correspond à environ 1 400 visites mensuelles.

Notre développement Firebase a une limite ssortingcte sur le nombre de connexions autorisées. Toutes les Firebases payantes sont toutefois “burstables”, ce qui signifie que l’utilisation n’est pas limitée et que vous êtes facturé pour tout excédent. Nous mesurons les connexions pour les plans payants sur la base du 95ème centile d’utilisation au cours du mois.

De cette discussion sur la liste de diffusion , par Andrew Lee (fondateur de Firebase):

Je vous recommande fortement de ne pas vous en soucier, sauf si vous vous heurtez à nos limites … la plupart des développeurs surestiment le nombre d’utilisateurs simultanés qu’ils auront. Une bonne règle de base est 1 simultanée = 1000 visites mensuelles pour le site Web typique. Pour le mobile, le rapport entre les installations et les concurrents est parfois encore plus élevé (bien qu’il varie considérablement en fonction de votre cas d’utilisation). Nos plans sont assez généreux en ce qui concerne les utilisateurs simultanés. En tant que sharepoint données, notre propre site Web pourrait fonctionner confortablement sur le plan Firebase «gratuit» la plupart du temps. En fait, plus de 99,5% de toutes les Firebases n’atteignent jamais la limite de 50%.

Bref, si vous travaillez sur un projet de loisir, vous ne pourrez certainement pas atteindre notre limite libre de niveau 50. Si vous êtes une entreprise ou une application plus grande, j’espère que vous trouverez notre plan de 49 $ / mois plus rentable que de passer du temps d’ingénierie pour déterminer quand il faut aller en ligne / goOffline pour réduire ce nombre.

Dans le très haut de gamme (applications d’entreprise énormes avec 10 ko + concurrents), nous proposons une tarification personnalisée avec un taux par concurrent inférieur.

Analyse comparative des utilisateurs et test des connexions sur SO: calcul de la connexion dans Firebase

Une autre question similaire sur SO: Comment les connexions simultanées sont-elles calculées?