2017-06-09 4 views
0

Est-il nécessaire d'utiliser la technique Save data as transactions si une valeur augmente seulement? Dans l'exemple Firebase doc social blogging app le starCount peut aller vers le haut ou vers le bas, il est donc logique d'utiliser le droit de la transaction. Mais si la valeur augmente seulement, je suppose que la technique de transaction n'est pas nécessaire non? ou? Plusieurs utilisateurs en même temps augmentant une valeur correcte.Quand utiliser les transactions Firebase ou non

Répondre

3

Le compteur peut augmenter ou diminuer, cela signifie qu'un utilisateur peut cliquer sur le compteur pour augmenter la valeur, mais peut également diminuer la valeur s'il clique de nouveau. Lorsque nous utilisons des transactions, nous n'utilisons pas seulement pour augmenter ou diminuer un compteur, nous utilisons si nous savons que dans notre application est une possibilité que deux utilisateurs peuvent faire la même action dans le même temps. Si nous n'utilisons pas de transactions, le compteur ne peut être augmenté/diminué que d'une unité, au lieu de deux, si deux utilisateurs effectuent l'action en même temps. Si nous utilisons des transactions, les deux actions auront lieu dans différents threads d'exécution, il n'y a donc aucun moyen d'augmenter ou de réduire un compteur une seule fois, même les deux utilisateurs effectuent la même action en même temps. En guise de conclusion, utilisez les transactions chaque fois que vous pensez qu'il est possible que deux utilisateurs ou plus puissent changer la même valeur dans votre base de données Firebase en même temps.

Espérons que ça aide.

+0

Merci, mais je parle d'un compteur qui ne diminuera jamais, il ne peut que monter. –

+1

Peu importe si seulement augmenter ou seulement diminuer. Si un seul utilisateur utilise ce compteur, vous n'avez pas besoin de transactions. Si deux ou plusieurs utilisateurs peuvent utiliser le même compteur dans le même temps, alors vous avez besoin de transactions pour éviter les erreurs. –

+1

@ErikHellberg Ce n'est pas comme cela que les données changent en soi, mais qu'elles changent par rapport à la valeur précédente. Puisque la vérification de la valeur et la définition d'une nouvelle valeur sont des actions indépendantes, vous avez besoin d'une transaction pour vous assurer qu'elle ne changera pas pour autre chose dans l'intervalle. –