Costly Mistakes: Why We Had to Abandon Firebase
Tags: Software Development Team, Firebase, Programming, Startup, NoSQL

The year was 2018. We were about to graduate. We had a great idea which we thought would make us billionaires (spoiler: It didn’t).

But once a great mind said that a great idea itself doesn’t count. You need execution.

So needed to build the damn thing. And we had to do it fast. But we were a team of only 4 members.

So we all started doing our research (Google Search Mainly 👊) to find out the fastest and easiest way to build something that we could ship to millions of our customers overnight.

The answer was Firebase. We were promised great things. It was the perfect solution for us.

Things that made us choose Firebase

No backend engineer was needed. We only need to build the frontend.

The free tier was quite generous.

There is basically no barrier to entry.

It’s very easy to use.

Had almost everything we needed.

And above all, It was built by Google.

Firebase really has some great features. It’s very beginner-friendly. Some of the features that we heavily used are

Firestore: It’s a highly scalable real-time and NoSQL database solution that can be used directly by any frontend.

It’s a highly scalable real-time and NoSQL database solution that can be used directly by any frontend. Authentication: We didn’t have to worry about the authentication part of our system at all. Firebase got us completely covered.

We didn’t have to worry about the authentication part of our system at all. Firebase got us completely covered. Storage: We use Firebase storage to store mainly our images.

We use Firebase storage to store mainly our images. Notification: Firebase provides a very easy to implement notification service.

Firebase provides a very easy to implement notification service. Hosting: Firebase makes hosting static sites super easy for us. Our front-end React applications were hosted using Firebase Hosting.

Firebase makes hosting static sites super easy for us. Our front-end React applications were hosted using Firebase Hosting. Functions: They run on the cloud. They can respond to any kind of event on your data level. We mainly used this service for sending notification.

So we did use Firebase for all of our projects. From the mobile app to the web panel. We did make good progress in a very short amount of time and even managed funding for ourselves.

Things were going great until we had to scale up. We got some new team members to help us with the projects. Our dashboard and admin panel needed to be more customized. And things started going wrong.

Let me explain. . .

Inconsistent data

As Firebase Firestore was NoSQL in nature there was no limitation on which can data can be pushed.

So maybe some developer added some extra field or forget to have a null check on the value and the whole app crashed.

Every time we pushed something to production we had to pray so that it doesn’t break something else.

https://career.arizona.edu/sites/career.arizona.edu/files/webform/Videos-jp-fight12_0.pdf

https://career.arizona.edu/sites/career.arizona.edu/files/webform/Videos-jp-fight10.pdf

https://career.arizona.edu/sites/career.arizona.edu/files/webform/Videos-jp-fight9.pdf

https://career.arizona.edu/sites/career.arizona.edu/files/webform/Videos-jp-fight7.pdf

https://career.arizona.edu/sites/career.arizona.edu/files/webform/Videos-jp-fight8.pdf

https://career.arizona.edu/sites/career.arizona.edu/files/webform/Videos-jp-fight6.pdf

https://career.arizona.edu/sites/career.arizona.edu/files/webform/Videos-jp-fight5.pdf

https://career.arizona.edu/sites/career.arizona.edu/files/webform/Videos-jp-fight4.pdf

https://career.arizona.edu/sites/career.arizona.edu/files/webform/Videos-jp-fight3.pdf

https://career.arizona.edu/sites/career.arizona.edu/files/webform/Videos-jp-fight2.pdf

https://career.arizona.edu/sites/career.arizona.edu/files/webform/Videos-jp-fight-1.pdf

https://career.arizona.edu/sites/career.arizona.edu/files/webform/Videos-jp-fight.pdf

https://career.arizona.edu/sites/career.arizona.edu/files/webform/livestreaming.pdf

https://english.rvo.nl/sites/default/files/webform/Videos-jp-fight5.pdf

https://english.rvo.nl/sites/default/files/webform/livestreaming.pdf

https://english.rvo.nl/sites/default/files/webform/Videos-jp-fight12.pdf

https://www.adb.org/sites/default/files/webform/202012/Videos-jp-fight12.pdf

https://english.rvo.nl/sites/default/files/webform/Videos-jp-fight4.pdf

https://www.adb.org/sites/default/files/webform/202012/Videos-jp-fight10.pdf

https://www.adb.org/sites/default/files/webform/202012/Videos-jp-fight9.pdf

https://www.adb.org/sites/default/files/webform/202012/Videos-jp-fight7.pdf

https://www.adb.org/sites/default/files/webform/202012/Videos-jp-fight5.pdf

https://www.adb.org/sites/default/files/webform/202012/Videos-jp-fight3.pdf

https://www.adb.org/sites/default/files/webform/202012/Videos-jp-fight2.pdf

https://www.adb.org/sites/default/files/webform/202012/Videos-jp-fight.pdf

https://www.packcity.co.jp/sites/packcity.co.jp/files/webform/videos-jp-fight6.pdf

https://www.packcity.co.jp/sites/packcity.co.jp/files/webform/videos-jp-fight12.pdf

https://www.packcity.co.jp/sites/packcity.co.jp/files/webform/videos-jp-fight9.pdf

https://www.packcity.co.jp/sites/packcity.co.jp/files/webform/livestreaming.pdf

https://www.packcity.co.jp/sites/packcity.co.jp/files/webform/videos-jp-fight-1.pdf

As more and more developers started to join the problems were rising. Each mistake was causing us so much time. It wasn’t worth it. The core members had to work day and night just to keep the product alive.

Every new feature was a nightmare.