iOS Firestore, grosse base de donnée, besoin hors-ligne, mais pas tout

Super, c’était la première page qu’il me manquait, je vais pouvoir y jeter un oeil !
Merci :slight_smile:

La première page c’est sur Realtime mais il y a quand même de fortes chances que de nombreuses informations concernent également Firestore.

D’ailleurs, je commence mon nouveau projet sur Firestore dans quelques jours :slight_smile:

Je vais investiguer :smiley:

Je te tiens au courant de ce que je trouve :wink:

Je pense que ce n’est pas tout à fait vrai, plutôt que le cache de Firebase sera renouvelé en réutilisant la partie du cache la moins récemment utilisée (dans le temps), donc dans ce cas, cela veut dire que si il y a certaines informations qu’on utilise tout le temps, au démarrage de l’app, donc que l’utilisateur consulte régulièrement, ces données ne seront jamais effacées (sauf si on dépasse 10Mb pour les données à absolument garder en hors-ligne, mais peu de chance d’atteindre cela je pense).

By default, 10MB of previously synced data is cached. This should be enough for most applications. If the cache outgrows its configured size, the Firebase Realtime Database purges data that has been used least recently. Data that is kept in sync is not purged from the cache. (Firebase documentation)

Oui c’est sûr que ça fonctionne comme ça, mais tu étais tellement persuadé, au début, que ta base allait dépasser les 10MB que ça aurait écrasé le début de ta base :grin:
Mais je pense comme toi (en attendant que tu fasses les tests), il y a peu de chance que ça dépasse 10MB.

Non non, je veux dire par là que même si la base dépasse les 10Mb, ça ne devrait pas pour autant virer les première entrées du cache, ce n’est pas du LIFO (Last In First Out).

Donc s’il y a des données que tu utilises tout le temps, ces données resteront toujours présente, et Firebase fera le ménage sur les autres entrées, que tu utilises moins souvent. :slight_smile:

Ah ok, je ne pensais pas que ça allait jusqu’à gérer de la donnée froide. C’est vraiment cool si ça fonctionne comme ça !

D’après la documentation, il semblerait que ce soit le cas ! :slight_smile: