Firebase peut-il être utilisé comme une base de données hors ligne ?


D'une manière générale, la base de données en temps réel Firebase peut être utilisée hors ligne. Cependant, l'attente est que l'application est censée être connectée la plupart du temps, et les modifications apportées à la base de données qui se produisent en mode hors ligne seront synchronisées lorsqu'elle dispose d'une connectivité. Une utilisation 100 % hors ligne n'est pas vraiment un cas d'utilisation pris en charge, car le magasin de données canonique se trouve sur le serveur.


La copie locale de la base de données est limitée à (10 Mo, au moins sur Android c'est le cas). Si vous avez l'intention d'écrire dans la base de données au-delà de cette limite alors que vous êtes hors ligne, elle évincera une partie de vos données en cache pour faire de la place à ce que vous ajoutez. Ensuite, vous ne pourrez plus lire ces valeurs évincées jusqu'à ce que l'application soit de nouveau en ligne. Pire, la gestion d'une liste croissante d'écritures à appliquer lors de la remise en ligne est taxante pour l'appli, donc vous ne voulez pas planifier beaucoup d'écritures en mode hors ligne.


Aussi, si vous avez des permissions ou des validations définies pour votre base de données, celles-ci ne peuvent être vérifiées que sur le serveur. Donc, si vous effectuez des écritures hors ligne dans votre cache local et que vous n'avez plus d'écouteur actif, vous risquez de ne jamais savoir si ces écritures échouent.

En raison de ces mises en garde, il est préférable de ne pas penser à Firebase Realtime Database comme à une base de données " hors ligne ". Il vaut mieux y penser comme à une base de données "synchronisée" qui se synchronise activement avec le serveur tant que la connectivité est présente.

La base de données en temps réel de Firebase est une base de données "hors ligne".