2

I'm aiming to build a calendar Flutter app, which offers user authentication. As I'm a total beginner if it comes to backend programming, I thought of using Firebase. However, while informing myself about it, I read that using Firebase has plenty disadvantages like:

  • data migration problems
  • pricing
  • limited querying capabilities

Hence I'm intending to learn more about REAL backend development and bumped into express, MongoDB and node.js, which was very interesting, especially for my project. My problem though is that I would have to host my rest API with e.g Heroku, which is way too expensive for me, including the pricing for MongoDB. Furthermore, I'd have to build my own authentication system with JWT, of which I'm not sure if it can be as safe as Google's Firebase. :/

Now my question is: Do you guys think that Firebase is enough for my project, or is it cleverer to invest into MongoDB and Heroku? Other backend approaches are obviously welcome too! :)

1 Answer 1

3

Edit

Just re-read your question and if all you need is authorization I'd just use Firebase. It plays nicely with Flutter and is relatively easy to set up, it's secure and always free unless you use phone authorization.

Original Answer regarding backend databases

Firebase pricing won't be an issue until you have a lot of users. Whatever querying limitations you're referring to may or may not be relevant to whatever it is that your Calendar app needs to do. My guess is that Firebase is probably totally fine for your project unless you anticipate lots of users with lots of queries. You'll also be up and running a lot faster than writing your own back end.

Node/Mongo is a great combo and with the free tier of Mongo Atlas hosting you get roughly 500MB for free storage. There's also a free tier on Heroku also that will host your Node app so you can host your own back end for free up to a point.

You may find that going this route you can get pretty far before running out of storage assuming you're not uploading large files and all your data is json/string data. And it would be a good learning experience if you're interested in back end development. Following the Mongo and Node sections of the App Brewery Web Dev course, I had a basic Express/Mongo app hosted on Heroku in a few hours of following along to the videos with zero back end experience at the time. Obviously, any real Node app would require more development time.

The other benefit of going that route is that you can customize your responses to exactly what you need and simplify things on the Flutter side.

Sign up to request clarification or add additional context in comments.

1 Comment

Thank you for your answer, it helped a lot! :)

Your Answer

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.