Blog

The Good, Bad, and the Ugly of Firebase

The Good, Bad, and the Ugly of Firebase

Firebase is a feature-rich back-end-as-a-service (BAAS) solution that started its journey as a start-up and became one of the futuristic app development platforms on the Google cloud platform.

 

The awesome user experience of firebase makes it one of the star performers among all of its competitors. If you are using this platform, you don’t need to manage servers or write APIs. Firebase is the only solution that you will need to develop applications.

 

Everything in firebase is written so freely that anyone can easily modify the codes to suit their needs. Of course, you will sometimes need the help of other bits of Google Cloud for creating more advanced applications as Firebase alone cannot solve all your requirements. To give you a clear picture, here we will be discussing everything about Firebase. Check it out.

 

The Good

 

Feature Set

 

It is hard to find any flaw in this section. If you check the website of firebase, you will find analytics, full document storage, push notification, and everything else that you might need.

 

Realtime Data

 

The entire database of this system is backed by a real time connection. That means with some data binding, one can connect your views with the data, and it will magically change at the moment something changes in your app.

 

Even though it sounds simple, the whole system is absurdly powerful. This system makes sure that you don’t have to build pull-to-refresh controls in your applications or constantly poll the server. It also means that you don’t have to send push notifications to control the updates of your applications.

 

Speed

 

The SDK of firebase handles all the issues related to network traffic. That means you can just write the native codes and hit the ground running with your high performing application. By using this system, you can just bypass anything related to writing a networking layer.

 

As the database of this system is schemaless, you can denote the data models in the applications without making any major changes to your server codes. There is hardly another service available right now that allows you to move as fast as Firebase will allow you. With the help of the UI libraries of Firebase, you can write entire sections of applications in almost no time.

 

Cross-Platform

 

Creating applications for multiple applications while using the same backend and database has become even easier with Firebase. The system has an SDK for different languages. If you check it, you will notice that all of them are pretty close to the feature parity of different platforms.

 

For some of the business logic, there will be a little bit of code duplication for each of the applications you build. However, if you want, you can bypass this by building a server in front of Firebase. If you don’t do this, chances are, your overall code savings from the features set and SDK will be worth that duplication.

 

Incredible Static Hosting

 

Firebase hosting comes with free SSL and CDN you can get on the Google Cloud Platform. That means, you don’t have to face any problems serving files to thousands of users across the world. Also, if you are thinking about zero configuration hosting for your static website or single-page app, Firebase is one of the great options for you. You might not use other services of Google, but this one offers some awesome benefits that you should not ignore.

 

The Bad

 

The Console

 

No doubt it looks great and allows you to do several great things, but after some time, you will realize that it’s not that great really. The database manager is nothing but a glorified version of JSON editor. There’s no doubt it’s great in everything it does, but it does not fulfil the expectation you might have. If you have ever used Postico, Mongotron, Workbench or PHPMyAdmin, you might find it as a nice toy.

 

Another limitation of the console is the lack of detailed analytics or logs. Considering this is a part of Google, the data giant, this seems a little bizarre. Of course, you get the nice graph depicting the usage of the database, but there’s no way of knowing how many files have been downloaded from the storage until and unless you conjure up a solution for yourself.

 

Proprietary Tech

 

Previously, when Facebook shut down Parse many businesses found themselves in hot water. Even though this might not happen with Firebase, the reluctance of people to depend on a third-party platform-as-a-service is quite understandable.

 

Relationships

 

The entire database of Firebase is created like a giant JSON file. This is why there’s no concept of relationship in this system. Instead, Firebase pushes you to build your code and schemaless all by yourself, which includes some complex code for deduplication in the database. If your database needs to have a lot of relationships, then it is better to think it through and plan accordingly before choosing Firebase.

 

The Ugly

 

Simple Queries

 

You can’t use multiple keys for filtering and sorting in a firebase. In this system, you have to use only one key. If you want to do both sorting and filtering, then you have to create a common key for them.

 

Paging

 

Paging is unusually complicated in firebase. Even though the system has different ways to address the issue all of those require extra CPU cycles and code. One such option is to have multiple queries, one for each group of 30. However, since everything is happening real-time, this adds some complications. You have to keep tabs of each of the queries and make sure to unsubscribe them as well. The others are more complicated and lead to battery drainage as well.

 

Conclusion

 

Even though it has a fair share of problems and complications, Firebase is still unrivaled when it comes to how quickly a developer can move. The real-time interaction features not only save your time but also the labor of writing huge parts of applications. The con is, you have to make some sacrifices. You also can’t consider this data in the same way as any typical API. So, while building a production app, it is better to consider all the requirements before starting out.

Leave a Comment

Your email address will not be published. Required fields are marked *

bottomtotop

Start Getting Results