Startup tips: Why you should consider using Firebase

Any startup looking to develop a mobile app for either iOS or Android, a web app or any application that requires a backend, should seriously consider using Firebase as a backend. Why? There are so many reasons for it, but I will try to explain as succinctly as possible.

The first reason is, comes at an initial zero cost with the spark plan. This allows you to do a lot. Once you hit the limitations of the free plan, then you have the option of the Flame plan at a fixed cost of $25/month or the pay as you go plan. This type of pricing is great because it allows you to keep costs to a minimum during your development phase.

It comes with a NoSQL database included. You can go either to the real-time database or the Firestore. There are pros/cons, so you need to decide which one fits your requirements best. There is also built-in database security so you can prevent data from being improperly accessed. You can configure the security rules using a javascript type language and via the Firebase console. This is a really strong point because any mobile or web app nowadays will require a database.

An example of a realtime database in Firebase

It has built-in authentication support with passwords, phone numbers federated identity providers such as Facebook, Twitter, Google, etc. There are SDKs for iOS, Android, Web(Javascript), Node and Java. If you don’t want to create your own login screen, you can just drop in the Firebase Auth UI component into your app.

A login screen with the major federated authentication options

It has built-in messaging support. You can easily add notifications to your apps. Something that is really important to keep your users engaged.

It can keep all your configuration in a central location and outside your application. This is a big deal because you don’t want to have to release a new version of the application everytime you change a configuration parameter. There is also the hidden power of setting configuration parameters based on rules. You could, for example, decide to configure a parameter differently based on geographical location, device type or based on any custom parameter that you decide to create. With this feature, you can keep a lot of logic out of your code. Who likes to create lots of if statements?

Crashlytics(previously Fabric) integration to firebase console. With this, you will know if the release of your new app crashes and you will get stack-traces.

You can host your HTML/JS, or even a node.js web app using Firebase’s hosting solution.

Serverless withcloud functions. Cloud functions can do operations in the backend, allow you to create integration points with third-party systems(e.g. Paypal payment notifications). CF can be triggered by URL or based on specific events such as a user signing up, buying a subscription, etc. The only downside is that if you create a cloud function that connects to third-party services outside of Google Cloud, then you have to start paying for the flame plan.

Firebase has more features that we are yet to try such as the ML kit(image recognition, text detection, image labelling, landmark recognition, etc) or the automated testing solutions.

The most compelling reason to use Firebase is that of all the things that it provides are for such a low adoption price. And it does scale….

For more detailed information please visit the firebase website(https://firebase.google.com/) where you can see more details of the features available and the pricing.