I'm currently starting to work on a Flutter application.
The constraints are that it should be able to work on all platforms (Android, IOS, macOS, Windows, Linux and Web). Ideally for the first 5 I would like to have a local storage which would store all the user data and then sync it with an online Database once there is a connection.
I have roughly looked at how many tables I would need if I would go with an SQL approach and it would be about 30 different tables per user.
From research I have found HIVE is a great NoSQL db which works for all platforms (but has no sync capabilities). Firebase makes things easy to work with however I was not able to find out if I can create a database for each user so that their entries do not get mixed with others. Each user would need to be separated from each other to make it easier with data retrieval and checking the latest entry online to sync locally.
Do you know if I can make use of firebase as it has some great authentication features for the users which would make life easier? Would you say that I should use SQL or NoSQL? With firebase when locally stored (offline) it only stores it in the cache, can I store it in a local DB as well or not a good idea? Should I use my own online DB so I avoid vendor lock in?