web-dev-qa-db-fra.com

Firestore data offline: fusion d'écriture, durée maximale de persistance hors ligne

https://firebase.google.com/docs/firestore/manage-data/enable-offline

Comment Firestore fonctionne-t-il avec les données hors ligne?

  1. Comment les écritures sont-elles fusionnées par de nombreux clients éditant les mêmes données hors ligne, qui le sont ensuite au même moment?

  2. Combien de temps les données hors connexion sont-elles conservées? Si mon utilisateur utilise mon application hors connexion pendant 5 ans, puis revient en ligne, cela posera-t-il un problème? Les modifications hors ligne persistent-elles après le redémarrage de l'appareil?

  3. Les performances des requêtes de données hors connexion se dégradent-elles à mesure que le jeu de données grossit?

Je suis particulièrement intéressé par le client Web Firestore.

Est-ce que tous les clients linguistiques implémentent ce qui précède de la même manière?

Merci.

14
zino

Comment les écritures sont-elles fusionnées par de nombreux clients éditant les mêmes données hors ligne, qui le sont ensuite au même moment?

Les opérations d'écriture qui auront lieu sur les serveurs Firebase seront dans l'ordre dans lequel cette série d'opérations s'est déroulée. La dernière opération (la plus récente) sera celle qui sera disponible dans la base de données au moment de la synchronisation.

Combien de temps les données hors connexion sont-elles conservées? Si mon utilisateur utilise mon application hors connexion pendant 5 ans, puis revient en ligne, cela posera-t-il un problème?

Le problème ne concerne pas combien de temps est sur combien d'opérations faites-vous lorsque le périphérique est hors ligne. En mode hors connexion, Firestore garde en file d'attente toutes les opérations d'écriture. À mesure que cette file d'attente s'allonge, les opérations locales et le démarrage de l'application ralentissent. Rien de majeur, mais avec le temps, cela peut s’additionner. Le problème majeur dans ce cas est que le résultat final sera que les données sur le serveur resteront inchangées. Alors à quoi sert une base de données en temps réel? Firestore est vraiment conçu comme une base de données en ligne conçue pour les périodes de déconnexion brèves à intermédiaires, afin de ne pas rester hors ligne pendant 5 ans. De plus, dans 5 ans, il pourrait s'agir d'un problème de compatibilité et non du nombre d'écritures.

Les modifications hors ligne persistent-elles après le redémarrage de l'appareil?

La persistance hors ligne est également appelée persistance du disque . Ce type de persistance est activé par défaut dans Cloud Firestore. Cela signifie que les données récemment écoutées (ainsi que toutes les écritures en attente de l'application dans la base de données) sont conservées sur le disque. Les données contenues dans ce cache survivent au redémarrage de l'application et au redémarrage de l'appareil.

Les performances des requêtes de données hors connexion se dégradent-elles à mesure que le jeu de données grossit?

Oui, comme expliqué ci-dessus.

Est-ce que tous les clients linguistiques implémentent ce qui précède de la même manière?

Non. Pour iOS et Android, la fonctionnalité hors connexion fonctionne bien, tandis que pour le Web, cette fonctionnalité est encore expérimentale.

2
Alex Mamo

Je suppose que la documentation a la plupart de vos réponses. lien

  1. Les écritures sont gérées en fonction d'horodatages.
  2. Comme vous l'avez spécifié, vous êtes intéressé par le client Web Firebase. Dans ce cas, je suppose que vous n’avez peut-être pas accès aux données hors connexion après le redémarrage du navigateur. Si ce n'est pas le cas, Firebase devrait pouvoir gérer les écritures. Je n'ai trouvé aucune limite de temps spécifique. Cependant, la documentation dit 

Les applications Firebase fonctionnent même si votre application perd temporairement sa connexion réseau. En outre, Firebase fournit des outils pour la persistance des données localement, la gestion de la présence et le traitement de la latence. 

cela signifie que la persistance des données est certainement pour une période limitée.

  1. Oui, s'il y a trop d'opérations, la charge du système sera plus grande en synchronisant toutes les écritures dans le nuage.

J'espère que cela t'aides. Veuillez également vous référer à ce lien .

0
m__