Pieter Pienaar
Pieter Pienaar

Reputation: 178

Flutter Firestore Offline Database

I have a clarifying question about Cloud Firestore and Flutter: I am making an app that users can create log entries of sort, which will be saved on Firebase. But they might make up to 30 entries offline, before they have internet connection again.

And I know that Firestore has an offline feature, with which any created documents can be viewed offline because it is saved in the order of logging, and then synced with the database when internet connection is gained. But it is absolutely crucial that these logs cannot be lost in my app before having a chance of uploading it. Is there a way to ensure that my app will not lose this data before connecting to Firebase again, or should I create a Sembast database on the device, and save a copy of everything, and then check that once in a while against the database?

Does Firestore have offline contingency for if the phone's battery dies before it could sync with Firestore?

Or is there another solution I am unaware of?

Upvotes: 3

Views: 3239

Answers (3)

Frank van Puffelen
Frank van Puffelen

Reputation: 598728

Does Firestore have offline contingency for if the phone's battery dies before it could sync with Firestore?

When Firestore's offline persistence is enabled, it stores data that your app has recently read, as well as any pending writes, to a database on the local device or browser. This disk based cache will survive restarts of the app/reloads of the page.

Upvotes: 2

Farman Ali Khan
Farman Ali Khan

Reputation: 896

For new version of use below code -

FirebaseFirestore.instance.settings =
        Settings(cacheSizeBytes: Settings.CACHE_SIZE_UNLIMITED);

Upvotes: 1

thomas gotzsche
thomas gotzsche

Reputation: 387

For Android and iOS, offline persistence is enabled by default. You don't have to do anything in your code.

Note there is a default cache size of 100 MB. This can be changed though, eg

let settings = Firestore.firestore().settings
settings.cacheSizeBytes = FirestoreCacheSizeUnlimited
Firestore.firestore().settings = settings

Upvotes: 9

Related Questions