Using Firebase as backend vs coding own backend system – What’s better?

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! 🙂