1

I'm working on a somewhat typical notes app that I plan to create with React Native. Since the usage involves a lot of typing, it makes sense that there should also be a web version that users could open on their desktop.

Now, if the app was mobile-only I was planning to store the data locally using SQLite and let users back it up to Google Drive or Dropbox if they want to transfer to a new install. This becomes a bit messy once a web app comes into the picture, since now I would need to store the data on a server and sync the native as well as web version with it. Is it still possible to use a cloud storage method in this situation or do I have to go all the way and create a backend with a database, authentication, and a REST API for this to be viable?

Edit: I have not used firebase before but it looks like it was meant for something like this, could someone correct me if I'm wrong? It looks like there's a driver for offline sync with react native too (https://rnfirebase.io/database/offline-support)

Another one I found is Realm Sync (https://www.mongodb.com/realm/mobile/sync)

9
  • 1
    Why would you want to use a local database for a note app? I suggest you use plain files (a folder for your resources). Users like that, it's open. Same on the server. File system based is the way to go. I would use your app. And markdown please. Go! :-) Jan 8, 2022 at 10:15
  • @MartinMaat: how would using plain files simplify the requirement of editing the same data pool from a mobile app as well as from a Web app?
    – Doc Brown
    Jan 8, 2022 at 10:28
  • @DocBrown It probably would not, you would have to take care of that yourself using lock files. I was not providing an answer, I just wanted to provide some input as a potential user. I use a note app a lot and this is one thing I would have liked to be different. Jan 8, 2022 at 11:22
  • @DocBrown: it's reasonable for users to use their own online storage (e.g. Google Drive) for e.g. their personal notes made in the app, which would then be accessible from anywhere and preclude the issue at hand. I use this for several webtools (e.g. draw.io). Comparatively, it's not reasonable for users to have to spin up their own db.
    – Flater
    Jan 9, 2022 at 0:07
  • @Flater: I think your comment is off-track. The alternatives discussed here were an SQlite database (which would also be a file stored in the personal online storage) vs. plain files. And yes, it is absolutely common to have each user their own SQlite database. For example, my Firefox browser here uses for for storing its configuration.
    – Doc Brown
    Jan 9, 2022 at 7:25

1 Answer 1

1

You can use Node-RED as a frontend for SQlite. This would allow to use SQlite like any web enabled database, so your web app can use the same format like your local app.

Node-RED let´s you create REST-api´s very simple, so you can add some SQL-security to prevent users from hacking your database.

I´m just a bit unsure if you can access SQlite somewhere in a data storage, so maybe using different user accounts gets a bit tricky. But it´s definitively worth a try.

3
  • 2
    Maybe I am misunderstanding this answer, but how does this answer the question "Is it still possible to use a cloud storage method in this situation [without setting up a database, authentication, and a REST API]"?
    – Doc Brown
    Jan 8, 2022 at 10:25
  • @DocBrown I suppose it doesn't have to be restricted to a cloud storage method. What I'm looking for is basically something that saves me the hassle of creating and maintaining a backend for some simple data sync across devices (since all it does is store a user's personal data) that could maybe be self hosted if required. So far firebase is the closest thing I found
    – udbhavs
    Jan 8, 2022 at 10:51
  • Node-RED gives you access to SQlite via a REST api, so you can store the SQlite file anywhere but run it like a normal database. In some cases this I found this option very convenient. Thought this could help in your case.
    – Eckehard
    Jan 8, 2022 at 11:58

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.