What Are User Personas In UX & Why Are They So Important In App Development?
- Industry Insights
Are you looking to create a robust and reliable app that is sure to impress? Then Firebase is an option you must have considered. It is a great database management solution for holistic and efficient application development. With several useful features (which we will go into further detail later), the platform has most of what you’ll need to build a high-performance application.
Firebase has been around for a while now. Created in 2011, it is a mobile and web application development platform later acquired by Google in 2014. It offers a wide range of services for developers, including analytics, authentication, real-time database access & management, and cloud messaging, to name a few.
That’s all well and good, but you’re probably here to understand how good it actually is, right? Well, you’re in luck because that’s exactly what we’ll answer, and on top of that, provide some unique insights straight from a couple of our in-house developers.
We have been using Firebase in multiple projects for a considerable time now. So we’ll share our multi-year experience with the platform, discuss its benefits, challenges, and whether it’s a viable solution for developers. This is the Firebase review you’ve been waiting for!
At its core, Firebase is a Platform-as-a-Service (BaaS) solution that simplifies mobile and web application development by providing a collection of tools and services that allow developers to focus on building their application’s functionality and performance quickly without worrying too much about the development and management of the backend infrastructure.
Firebase provides a wide range of services and tools to help developers build high-quality apps quickly and easily. It is a cloud-based platform that offers features such as a real-time database, authentication, hosting, storage, messaging, and analytics, among others. The platform can be used to build various types of apps, from simple to complex ones, and it supports multiple programming languages and platforms, including iOS, Android, and web. It is owned by Google and is widely used by developers around the world to create scalable and reliable apps.
What makes Firebase unique is that it offers several key features in a single platform, making it a fantastic all-in-one tool in a developer’s toolkit.
Firebase provides three essential features that make it a great BaaS, real-time data management, user authentication and hosting. When these pillars of backend development are taken care of, developers can focus entirely on the frontend logic and deploy applications quickly with minimal setup effort. After Google purchased it, the platform became even more comprehensive for backend development by introducing cloud-based computing, cloud messaging, and analytics.
Firebase provides comprehensive documentation that covers all aspects of using the platform, including getting started guides, API references, and code samples. It has a vibrant developer community where developers can ask questions, share knowledge, and collaborate on projects. The platform also provides various support channels, including email support, chat support, and a support forum, to help developers resolve any issues they may encounter while using the platform.
Arguably, Firebase’s jewel in the crown, its real-time database management service, can handle large amounts of data. However, performance may suffer with enormous datasets. The platform also provides several tools to manage and secure the database, including rules that allow developers to define who can read and write data, as well as the ability to back up and restore data.
A big reason why Firebase is popular is that it offers a free tier for developers, which includes several key features, including real-time database management, hosting, and authentication. This low barrier for entry makes this platform a solid choice and hugely admired by beginner developers in particular. That said, specific features like analytics have usage limits on the free tier.
On the paid side, Firebase’s pricing model is based on usage, with developers paying for the resources they use. The platform offers a free tier with usage limits and several paid plans with additional features and usage allowances.
The more you use, the more you pay; sounds simple, right? Well, it actually isn’t, to be honest. This is where it gets tricky. You see, it’s a usage-based billing system, and so there have been several instances where customers have experienced unexpected billings on their account usage when left unchecked. We’ll delve further into this later, but the key lesson here is that while the free plan is great for beginners to start using the platform, there’s plenty of room for improvement in the paid version, especially regarding billings.
Firebase is a versatile PaaS that can be manoeuvred to be suitable for both mobile and web application development. This can be a great place to start for entry-level developers learning their trade, as it is ideal for more straightforward projects.
Furthermore, it’s relatively easy to set up, manage, and for the most part, requires only front-end logic, meaning the platform will take care of most of the backend complications. Lastly, It provides hosting, authentication, and other services in a single bundle, which can be challenging to manage separately, especially for developers just starting out.
Our team has been using Firebase for several years, and we initially found it to be a decent solution for our needs. During our early years, we chose it as a PaaS mainly because of its ability to handle large data sets effectively and better than similar solutions. Its real-time database connectivity was also another reason why we opted for this platform, which allowed us to create a dynamic, responsive application that updated in real-time for multiple users.
We were able to quickly integrate Firebase into our applications, and the learning curve was relatively easy. One of its most significant advantages is that it provides an all-in-one solution for web and mobile app development. We didn’t have to worry about managing our backend infrastructure, which saved us time and money. The platform’s user authentication and hosting services were also easy to set up and integrate into our application.
We found Firebase’s real-time analytics insightful in understanding how our application performed and ironing out any identified deficiencies. Furthermore, we could track crashes and bugs using the crashlytics tool, which was great for identifying, prioritising and fixing performance and stability issues with our application.
On the other hand, we also faced some significant challenges when using Firebase. One of the main challenges was that its database management system could have had better performance, reflected in slow loading times in the app, especially when handling large amounts of data. This became increasingly pertinent as our applications scaled in user base and technical complexity.
Another problem we faced with Firebase was that it limited our application’s growth potential. The functionalities provided by the platform are great at the start but can become significant bottlenecks later on. How is that so, you ask? As you scale and your application grows more complex, you’ll soon start realising that Firebase doesn’t offer everything you need, and to add these new functions to your app, you’ll have to make compromises you don’t want to make.
Let’s clarify this further with an example. Let’s say you are searching through a document in your Firebase database that contains a list of all your users, and you want to narrow your search by the user’s name. Sounds relatively simple, right? The problem is this is not possible in Firebase, as there is no query you can use to check if a given field contains a specific string value, like the user name in this case.
Additionally, Like we briefly touched upon earlier, the other big part of the critique of Firebase is its pricing model. Firebase can become very expensive, especially when your app grows. When you’re starting out with the platform, you don’t necessarily realise this, but as your app becomes more complex, it will become way more expensive than you ever thought possible. This is because the platform charges you based on your usage. Now take an example, if you have a few mistakes in your app, such as sub-optimised queries or minor bugs. These mistakes can snowball into a large bill because your app might generate more queries than it needs.
In our case, Firebase’s pricing proved to be a bit tricky to manage at times. There were several instances where we had to diligently monitor our usage and coding structure of the app to avoid unexpected costs and look out for our client’s expenses. Failure to do so could have cost us a fortune.
Our resident Software Engineer, Suman Poudel, has had mixed feelings working with the platform for over three years in one of our in-house applications. Here’s what he had to say regarding his experience with Firebase.
“I think the platform is excellent and filled with unique features. However, for our applications, I feel that Firebase is a bit slow, and other better database platforms, such as MongoDB, suit our needs better. In addition, Firebase being a NoSQL database, is much more challenging to manage, update and maintain than relational databases with key-value pairs.
Interestingly, when working on a crashing issue, I found that Firebase was also unsuitable for applications intended for users with poor network connectivity. For instance, I observed that the application was working as expected with 5G technology, but the performance dropped significantly in 4G and became unusable in 2G.
We’ve been using Firebase in our in-house application for over five years. Still, after experiencing plenty of performance and scalability issues, we’ve decided to switch to MongoDB.
Despite all that, I still think Firebase is a great platform and can be especially useful for beginner developers and smaller companies with less complex applications, a smaller userbase and datasets. It is, after all, a backend-as-a-service platform, so you’ll be able to develop a lot of great functionalities in your application without having to set the server infrastructure up from scratch. I’ve also felt that it integrates very well with internal search engines like Algolia providing users with a seamless search experience on applications.”
Our other Software Developer, Sagar Shrestha, echoes Suman’s thoughts and further explains Firebase’s suitability for more straightforward projects while raising some of its most significant disadvantages. So, let’s hear him out.
“For startups and smaller companies with limited development resources and less complex application systems, Firebase can be a phenomenal solution, as you’ll be getting multiple bundled platforms for the price of one. Think of a standard corporate website getting a decent amount of traffic requiring database synchronisation, as an example.
However, maintaining your system with Firebase can be challenging as it grows. For example, implementing queries that join or merge data can be difficult with Firebase compared to other databases like MongoDB or PostgreSQL. Essentially, this means even some simple database management tasks can be quite a hassle with Firebase compared to other database systems.
Firebase’s pricing model can be quite tricky to manage and potentially detrimental if you’re not diligently monitoring it. If you haven’t set up your application correctly, you can run into plenty of fluctuations in terms of billings.
In our case, it used to be an absolute mainstay of our technology stack in the early years; however, as we’ve grown and scaled, so has our selection of platforms. I wouldn’t say Firebase is outdated, and it still serves its purpose in the industry, but our company has begun to outgrow it for the most part.”
How good is Firebase for app and software development? After using Firebase for several years, we believe it is a viable solution for less technical projects. However, better options are available if you want to build an application that will work with large amounts of data and complex backend logic.
What Firebase will not do for you is implement any custom logic on your stored data. Instead, you would have to incorporate that into the front-end application, which for complex projects, is not viable.
To summarise, if you want to develop a relatively simple application that just needs a fast, reliable database, user authentication, usage tracking, and analytics system, then Firebase is a great way to go. But, if you’re building an application with complex back-end functionalities and logic, you’ll inevitably encounter several difficulties.
But what about using Firebase solely for database management? Yes, of course, you can integrate it with a custom application, of course, that handles the backend logic and store data on Firebase, but is this a good compromise? Especially when there are better options out there, we certainly don’t think so.
Firebase is a useful BaaS platform that simplifies mobile and web application development. Our multi-year experience using Firebase has had both positives and negatives, with its real-time database management and analytics services being beneficial. However, our developers have also encountered several performance issues with Firebase, and its usage-based pricing model has been a nuisance in managing and avoiding unexpected overbilling.
Ultimately, it’s up to you to decide whether Firebase fits your application’s needs. Firebase can be a great option if you’re looking to build an app fast and need a reliable database with other basic additional features. However, if you want to develop an application with complex back-end functionalities, Firebase is probably not the best choice. And, even if you plan on using it solely as your database management system, there are better options out there that you should consider.
If you’re still unsure what the best way forward for your application is, don’t hesitate to reach out to our team of experts – we would love to help you build the perfect software for your business needs. So why wait? Book a discovery call today, and let us show you how we can make customer experience excellence a reality!