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)

asked Jan 8, 2022 at 8:27
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! :-) Commented 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? Commented 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. Commented 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. Commented 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. Commented 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.

answered Jan 8, 2022 at 9:12
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]"? Commented 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 Commented 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. Commented Jan 8, 2022 at 11:58

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

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

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.