Firebase vs Custom Backend [Mobile Development
What to choose as a backend for the mobile application? The answer is clear & usual, it depends.
Typical choices that we have right now are Firebase (Amazon Amplify) or custom backend hosted on AWS or Azure or other hosting solutions.
What’s the main difference between them? Well, with Firebase you get many things out of the box, such as sign-in/sign up through social media networks, real-time database in place which you can work with & manage, security, easy-to-integrate analytics, chats functionality without a need for complex setup on either backend or front-end of the app, scalability & a well-tested stable backend solution.
However, Firebase also limits us in certain ways. You would like to integrate payments? - Well, write a custom request & integrate it with your Firebase setup. The admin panel provided from Firebase is also often not easy to use & not intuitive for the admin entity on the service.
With custom backend, we’re not tied up to any functionalities & are free to implement everything we want. You also don’t have to pay for the number of requests as on the Firebase & it’ll be cheaper once you scale with the number of users - however, you’ll still have hosting costs.
The other downside of Firebase is the absence of backend-based calculations - if you have any kind of complex calculations or processing you’ll be forced to do it on the device which can affect the app performance, give bad user experience & in a worst-case scenario even lead to your app being killed by the system due to the usage of too many processing power.
With the custom backend as a database & server solution we’re not tied up to any specific technology so can pick a language or framework specifically tied up to our needs - whether it’s Go for easiness of use & speed or Python for complex processing & a large piece of data analysis.
We have to definitely discuss costs & timeline part of the development process too.
Firebase is obviously more cost-effective & requires less time to setup & build an app on it - that’s why with most of our MVPs we’re using it as a backend server.
The custom backend requires more time & money, so we’re either switching to it once the app reached some traction or starting with it in the first place if some specific functionalities required as described above.
So, generally speaking, it always depends on your exact application, target market, future plans, current product goal, etc. - the best choice can only be made with proper consultation of someone who has lots of experience on the topic.