Firebase is an excellent web and mobile application development platform maintained by Firebase Inc., a subsidiary of Google. This backend as a service (BaaS) began with a rather nondescript startup called Envolve. In 2011 (upon founding), it provided APIs for developers who wanted to integrate online chats into their web portals.
A little later, the developers discovered that the Envolve platform is often used to send not only chat messages but also other kinds of data. Then it was decided to divide the software architecture into several data-specific modules. Thus, the initial version of Firebase appeared in April 2012. According to data for August 2019, this product is confidently leading in the number of uses for the development of Android applications.
The gradual expansion of the customer base, the exponential increase in the number of Firebase-based applications, as well as the influx of investments, attracted the attention of Google. The IT giant acquired Firebase in October 2014.
What Is Firebase And What Components Does It Consist Of?
Firebase is potentially capable of solving the many tasks that modern developers of applications for mobile devices and web portals face. De facto, Google intends to make Firebase the main development environment for all its software.
They are actively developing this platform, regularly adding support for fresh APIs and introducing new tools. For example, not so long ago, the ML Kit was released, which, among all else, allows developers to embed an offline Google Translate model in their applications, which currently supports 58 languages. Now let us discuss in more detail some services and solutions available to developers working with Firebase.
Firebase Cloud Messaging
A free cross-platform (currently supports IOS, Android and web applications) solution for various notifications and messages. Using FCM, you can easily retain an established audience by regularly reminding them of your products or services.
This component of Firebase provides the developer with a real-time database management backend. This allows synchronizing application data from different users, which is important, for example, for multiplayer games. All the collected information can be stored in the cloud.
A service that allows authenticating users using the code provided on the client-side. Auth supports almost all existing login providers. It also permits to create an authentication system using email and passwords, the database of which is stored in the platform’s cloud.
This component is designed to collect and analyze statistics about the operation of your applications. It has a wide range of possible settings that allow assembling real-time info about up to five hundred different events and user actions inside the application. For example:
- Crash reports;
- The efficiency of notifications;
- Performance data;
- Frequency of product launch by users;
- The quantity and quality of purchases within the application;
- And much more.
The developer can use the collected information to improve their product and troubleshoot user problems. Data can be reported in a variety of forms: tables, graphs, charts, etc. Firebase Analytics can also perform initial metadata analysis and provide you with some simple but effective development strategies. According to reports, this tool takes a leading position in the Android ecosystem.
Firebase Hosting developers claim that this component was formed in response to numerous customer requests and continues to develop, based on an analysis of their needs.
Firebase Cloud Functions
A solution that allows executing the backend code in response to HTTPS requests. All relevant code blocks are stored on the cloud and ran in a regulated environment, which completely eliminates the need to organize your own servers.
Firebase A/B Testing
A service that helps to optimize the appearance of your application, making it more convenient, enjoyable and understandable. It allows testing the user interface, the store within the application, and the marketing decisions by measuring how certain changes would affect the engagement index, profits, or other analyzed parameter.
The analysis involves aid from such components as Analytics, Cloud Messaging, Remote Config, etc. To simplify the details as much as possible, the process looks like testing the user choose between two options for any element: A or B. The option that most users have chosen should be considered more profitable, popular and having maximum monetization potential.
This machine learning system, designed specifically for developers who are deeply involved with artificial intelligence and neural networks, was launched in the beta state in May 2018.
At the moment, it used to implement such popular functions as speech recognition, biometric recognition, object and barcode recognition, creation of image descriptions. The prospect of using and developing this component of Firebase is quite wide as demonstrated by the above Statista infographic
Firebase vs Custom Backend for Mobile
The first thing you should know when comparing these two kinds of backends is that Firebase is a set of ready-made solutions, while custom solutions require significant resources to create. Starting to develop an application, it is necessary to clearly assess the funds you can allocate to the development, so as not to get stuck in the middle of the process without the means to finish it.
Of course, a situation may arise when the capabilities of Firebase may simply not be enough to solve all your problems. However, switching to a custom platform in the process means losing a lot of time, money and valuable data. That is why, before embarking on the development process, it is necessary to think carefully over the strategy for creating, promoting and monetizing the project. Only based on accurate evaluations can we make a balanced, sober decision. Now, let us discuss the individual aspects of each backend type.
You can start developing an application with Firebase free of charge. Spark plan, which is positioned as a service for people who are engaged in development as a hobby, is available to everyone immediately after going through a simple registration procedure. The free plan has a number of restrictions:
- The number of authentications from mobile devices is limited to 10 thousand per month;
- On the cloud, you can store no more than 1 GB of code, and bandwidth is limited to 10 GB per month;
- There are monthly restrictions on the number of file views;
- Web hosting has a size limit of 1 GB;
- The functionality of the ML Kit is limited;
- The number of test runs is limited to 10 per day.
Nevertheless, if your application starts gaining popularity, you can always change the pricing plan to Flame ($25 per month) or Blaze (calculated depending on your requirements).
The former has some limitations though higher than the Spark plan. The latter is not limited to anything. Blaze plan also provides access to some features inaccessible to users of Spark and Flame plans.
A major disadvantage of this BaaS is its universality - it cannot be tailored for a specific product. Each team of developers at a certain stage may meet situations when they require some functionality not provided by Firebase. Often by that time, they can already afford a fully custom backend.
Custom Backend Cost
The cost of developing all the necessary components of the custom backend in some cases can be quite high. Of course, in the result, you can get a backend platform that will perfectly cope with all your tasks and requirements.
The total amount of funds spent creating an adequate platform can significantly exceed potential profits. You would at least need to:
- Hire backend developers who have to write an incredible amount of code;
- Spend money on servers, routers, and other hardware;
- Spend money on continuous improvement of security systems.
All of the above, of course, is true only if you intend to create an application with an intended audience of more than a million people or some extremely unusual mechanics. For smaller projects, Firebase is quite perfect.
Development Time and Some Other Aspects
You can create an application on Firebase in a very short period. The process of improving its functions, adjusting to the target audience's feedback, and fine-tuning it will take some more time.
Firebase has a very detailed guide for beginners, a responsive support team and a very friendly community that always shares the experience with newcomers. Very important is also access to many ready components and direct integration with services of Google, that often have no alternatives in most custom platforms.
An application on a custom platform is often created much longer, because you have to solve many related problems with the storage of your data, hosting, APIs, and other aspects of development. To develop a product based on the custom backend, you need a team of experienced specialists, which is not necessary when creating an application based on Firebase.
Firebase Mobile App: Famous Examples
A large number of popular applications have been developed using Firebase platform and some of the leading IT companies use it. Many of them have long reached the Google recommended limit for 1 million users but still for various reasons have not transferred their applications to the custom backends. Here are the most notable of them:
We also highlighted five most popular mobile applications created with Firebase:
- Viber, 500,000,000+ installs;
- Shazam, 100,000,000+ installs;
- PicCollage, 50,000,000+ installs;
- Skyscanner, 10,000,000+ installs;
- Fabulous, 5,000,000+ installs.
Firebase is a user-friendly platform for mobile and web application developers. It is able to satisfy many requests of modern developers, is constantly being improved, updated and expanded. Thanks to its usage, the process of creating applications has been greatly simplified.
However, before rushing headlong into the process of creating your first product, it will not be superfluous to seek the help of experienced specialists or at least get their thorough advice. Otherwise, the money spent on the development may be lost and you risk being left with nothing.