In my experience, the easiest way is to use a database;
You must consider two scenarios:
that the application is completely closed and the Firebase system starts your operations for a few seconds, at which time it would save information in the database.
That the application is in the background but the system still keeps it alive, in that case I would use the WidgetsBindingObserver to synchronize the information that is in the database with what you need.
My recommendation is that you use Hive, it is simple and for a synchronization task like this I have used it and it has worked well for me.
Keep in mind that in the Background an isolate cannot modify UI components.