Firebase: An all-in-one platform for Web and Mobile application development
September 18, 2024
What is Firebase?
Firebase is a cloud-based platform designed for the development of web and mobile applications, helping to simplify the development process. It provides a set of tools aimed at four main objectives: development, growth, monetization, and data analysis.
Thanks to this platform, developers can spend less time on the backend of applications, allowing them to focus on user experience and feature innovation. This accelerates the development cycle and enables the delivery of high-quality products more quickly and efficiently. This approach differs from traditional software development, which typically involves developing both the frontend and backend.
Traditional Programming VS modern development with Firebase
History of Firebase
Foundation and acquisition by Google
Firebase was created in 2011 from Envolve, a startup that provided developers with an API to facilitate online chat integration on websites, founded by James Tamplin and Andrew Lee.
Soon, James and Andrew discovered that this API was being used to synchronize real-time data by applications not related to online chat. At that point, they decided to separate the chat system and the real-time architecture that powered it, creating Firebase in 2011 and launching it to the public in April 2012 with Firebase Realtime Database as its first product, enabling data synchronization across mobile devices (Android and iOS) and web.
In October 2014, following Firebase’s great success in the community, it was acquired by the American multinational Google, marking a historic milestone for the company. A year later, Google acquired Divshot, a tool for creating web pages, which was then merged with Firebase.
Transformation into a comprehensive platform
After its acquisition by the tech giant, Firebase continued to evolve under Google's umbrella. Over the following years, it was integrated with other Google services such as Google Cloud Platform, AdMob, and Google Ads to offer larger-scale products for software developers.
Additionally, new features were added, significantly increasing the number of users: cloud storage, user authentication, and push notifications.
In 2016, Google's company launched a major update with significant changes to its user interface, greatly enhancing usability, and introduced new tools for mobile and web app development. New integrations were also announced, including Google Analytics. From 2017 onward, Firebase established itself as a comprehensive platform for application development, providing various services from backend (cloud storage, push notifications, etc.), to analytics and monetization.
From 2018 to the present, Firebase has received numerous updates and improvements. In May 2018, they launched Firebase ML Kit, a library with machine learning capabilities (such as text recognition, image labeling, and face detection) designed for mobile app developers. Between 2019 and 2022, Firebase introduced Firebase Extensions (packaged solutions designed to enhance app functionality and productivity) and App Check, a security product described in the following paragraphs. Significant improvements were also made to products such as Remote Config, A/B Testing, and Crashlytics.
From 2023 to the present, development tools, analytics, and machine learning capabilities have continued to be optimized, with a strong focus on security, regulatory compliance, and user experience personalization.
Advantages of using Firebase
In the competitive world of mobile and web application development, finding a comprehensive platform that combines power, ease of use, and reliability is crucial for the success of any project. In this context, Firebase emerges as a standout solution that has transformed the way developers build and manage online applications, allowing them to create solutions quickly without worrying about existing technical complexities.
In this section, we will examine some advantages that make Firebase the preferred choice among software developers and how these can drive the success of projects.
Ease of use and development speed
Firebase stands out for its ease of use and integration into applications. Its intuitive interface and detailed documentation for all platforms make it an accessible solution for all types of developers.
Additionally, you can utilize Firebase's various services with very few lines of code, which speeds up the development process and reduces the learning curve.
Free tier and scalability
An important aspect of Firebase is its free tier, which includes a substantial set of services, making it an ideal option for all types of projects, from the most basic to advanced ones.
Among these free services are A/B Testing, Analytics, App Distribution, Cloud Messaging, Crashlytics, and Remote Config, as mentioned in Firebase's official documentation.
Other services, such as Cloud Storage, Hosting, and Realtime Database, have usage limits in the free tier. However, Firebase is designed to scale automatically according to the needs of each application, removing concerns about infrastructure scalability. This allows teams to focus on creating high-quality products.
Moreover, with Google's backing, Firebase ensures a high level of performance and availability.
Multiplatform
Firebase is compatible with mobile applications (Android and iOS), web applications (providing SDKs for JavaScript), and video games (Unity and C++), and it also supports Flutter. Therefore, it is a great option for any type of application development.
Continuous improvement
Constant evolutions and improvements ensure that teams always have access to the latest technologies and tools to stay up-to-date with market trends.
Integration with tools
Firebase allows us to make the most of its tools through various possible integrations. These include Google platforms such as Google Cloud Platform, Google Analytics, Google Ads, Google App Campaign, and Google Marketing Platform. This simplifies data analysis, promotes applications through channels like Google Play, YouTube, or current web browsers, displays free ads to maximize revenue, and even helps marketing specialists plan, execute, measure, and optimize their online marketing campaigns.
Other integrations supported by Firebase include JIRA for project management, Android Studio for Android mobile app development, Slack for team communication, BigQuery for large-scale data analysis, and Data Studio for data visualization.
Community
The Firebase community is another significant advantage, as it consists of a broad network of developers who share their experiences through forums and social media. This allows us to easily resolve our questions and have detailed guidance for integrating the platform.
Additionally, it offers opportunities to network and collaborate with other developers who share similar interests and goals. This can lead to partnerships, joint projects, and professional growth opportunities.
Similarly, Firebase continuously collects feedback and information from the community to keep improving and providing a better experience for programmers.
Firebase products
The various Firebase products can be categorized into two main groups: build products, which focus on helping develop and improve applications, and run products, which are aimed at understanding and enhancing the performance and stability of applications. The following illustration shows all the services provided by Firebase within their respective categories.
Firebase products
Build products
Thanks to the various build products that Firebase offers, it is possible to accelerate application development and enter the market quickly and securely. Additionally, all the services provide great scalability automatically based on the needs of each application.
Below, we describe the different build-oriented products, along with their benefits and use cases in the market.
-
App Check
A solution designed to protect backend resources from malicious techniques such as identity theft or financial fraud. It acts as an additional layer that provides extra protection by detecting incoming traffic and blocking any traffic with invalid credentials.
App Check is compatible with web applications and mobile apps on Android and iOS without additional configuration. Furthermore, its integration works not only with Firebase products such as Cloud Firestore, Realtime Database, Cloud Storage, Authentication, or Cloud Functions, but also allows for the addition of custom APIs.
Additionally, this solution supports the following services as certification providers: Device Check or App Attest for Apple platforms, SafetyNet or Play Integrity for Android, and reCAPTCHA Enterprise for web.
The functionality of this product involves the app interacting with the chosen provider, where the App Check SDK generates an attestation token. This token is cached by the Firebase SDK and sent to the backend with each request made by the app. Finally, the token's validity is verified to ensure the origin is legitimate.
One notable aspect of App Check is the level of security it provides, which depends on the service provider the app is using. For a web application using reCAPTCHA v3, it can only validate that requests come from a legitimate instance, while an Android app using SafetyNet can also validate if requests come from a rooted device.
Use cases
Here are some example use cases for Firebase App Check in different domains:
-
E-commerce: Online stores needing protection against financial fraud and malicious bots.
-
Education: E-learning platforms aimed at teaching that need to ensure their integrity and protect student data.
-
Tech Companies: App developers seeking to protect their data and services from abuse.
-
Healthcare: Medical applications that need to ensure data integrity.
Pricing
The use of App Check is subject to the quotas and limits set by the certification providers used. Here are the details for each:
-
Device Check and App Attest usage is subject to any quotas or limitations established by Apple.
- In case of Apple's App Attest, there is a limit of 100 requests per second for key pair attestations, which can vary depending on the load on Apple's servers. Once a key pair is attested, subsequent attestations are performed locally, so it is not necessary to use Apple's services until the corresponding certificate expires.
-
Play Integrity: 10,000 calls per day. However, as long as the app is available on Google Play, you can request an increase in the daily call limit using the following form.
-
reCAPTCHA Enterprise does not have cost up to 1 million calls per month. If this limit is exceeded, you should consult the relevant link.
-
App Hosting
App Hosting is a web hosting product that automatically builds and runs full-stack web applications based on the detected source code. It optimizes the development and deployment of applications in Angular and Next.js through integration with frameworks, GitHub, and other Google products such as Authentication, Vertex AI, or Cloud Firestore. It is designed to support modern server-rendered frameworks and adheres to best practices for enterprise-ready applications.
Not only is allowed for backend creation, but it can also manage services like Cloud Build, Cloud Run, and Cloud CDN, automatically scaling based on demand, thus accelerating time-to-market. As the user base of an app grows, factors such as security, access controls, and scalability become increasingly important. This product aims to relieve developers from these concerns thanks to Google Cloud's support and expertise.
Its integration with GitHub is one of App Hosting's key features, as a git merge is all that's needed to release a new version of the web application. Each time changes are pushed to a specific branch, Firebase Hosting will automatically deploy. Integration with Google Cloud's Developer Connect platform is also crucial, as it allows for the creation and maintenance of connections with source code management tools like GitHub.
Additionally, integration with the Firebase console enables users to monitor various application releases, providing traces and metrics that keep them informed of ongoing activities.
Pricing
-
Storage: Free up to 5GB per month. Once exceeded, the price is $0.10 per GB.
-
Uncached Bandwidth: Free up to 5GB per month. Once exceeded, the price is $0.20 per GB.
-
Cached Bandwidth: Free up to 5GB per month. Once exceeded, the price is $0.15 per GB.
-
Authentication
Authentication is a fundamental process in practically every application; however, its implementation requires secure storage of data using encryption techniques for passwords, as well as other protective measures against SQL injection or brute force attacks. In addition to this, user session management using tokens is necessary, further complicating the logic.
This is why Firebase offers Authentication, a product designed to simplify the creation of secure authentication systems. It supports email and password accounts, phone authentication, anonymous authentication, and integration with federated identity providers such as Google, Facebook, Apple, X, or GitHub.
It features a simple and fully customizable user interface for each application, allowing for customization of text strings, color palettes, and logos. Below is an example of a simple login screen implemented with Authentication.
Login example with Firebase Authentication
Its implementation is very quick; just around 10 lines of code are needed to integrate a login system into applications, compared to the lengthy development and maintenance required for a custom authentication system.
Additionally, security plays a vital role in this product, as data transmitted between applications and Firebase servers is encrypted via HTTPS. Passwords are kept encrypted with secure hashing algorithms, and other user data, such as names or email addresses, is protected by physical and logical security measures in Google's data centers.
Applications such as Shazam, The New York Times, Alibaba, Trivago, and IKEA use this great product to manage authentication and provide a fully personalized user experience.
Pricing
-
Free up to 10,000 user verifications per month. Once this limit is exceeded, the cost will be $0.01 per additional user.
-
For user verification via SMS, the first 10 per day are free, and subsequent verifications will incur charges based on the country.
-
Firebase ML
Firebase ML offers a set of machine learning services easily integrable into Android and iOS mobile applications.
You don't need extensive ML knowledge, as Firebase allows you to implement the necessary functionality with very few lines of code. On the other hand, if you are an experienced developer in the field of machine learning, Firebase also provides the option to use custom TensorFlow models.
This tool provides a set of APIs for the most common use cases on mobile devices: text recognition and translation, entity recognition in text (such as names of people, places, etc.), image labeling, barcode and QR code scanning, and face and object detection. One of the major advantages of this product is that it leverages Google Cloud's machine learning technology, ensuring a very high level of accuracy.
If you need a more specific and customized detection model for your application, AutoML Vision Edge is available. This tool is designed for training image classification models. With it, models can be trained with your own images and categories via Google Cloud and deployed quickly and efficiently to devices.
Some benefits of Firebase ML include ease of integration into projects without advanced subject knowledge, rapid deployment to devices, functionality that can be used both online and offline, multiplatform support for Android and iOS mobile applications, and extensive customization, allowing models to be individually trained for each app.
Companies like ebay Motors already use Firebase's machine learning tool to quickly categorize vehicle images, thereby reducing the time and cost of creating app listings and providing the best user experience.
Use cases
Here are some Firebase ML use cases in different domains:
-
Travel: Applications with real-time text translation to assist users in foreign countries.
-
Shopping: Apps designed to analyze and categorize product images to help users find similar items.
-
Photography: Face detection to automatically apply different filters.
-
News: Applications equipped with text recognition to extract various categories from articles and offer exclusive, personalized content to users.
Pricing
-
Firebase ML APIs on devices are completely free and can be used both online and offline.
-
However, cloud APIs, which may offer more accurate results, have usage costs:
-
Text recognition, image labeling, and entity recognition APIs come with 1,000 free calls per month, after which there is a charge of $1.50 per additional 1,000 calls.
-
The text translation service provides a free tier of 500,000 characters per month, and once this limit is exceeded, there will be a charge of $20 per million characters.
-
-
Other build products
This section describes some other Firebase build services that are also used in a variety of web and mobile applications.
Firestore is a NoSQL database that allows us to store, synchronize, and query data for global-scale applications.
Genkit provides the capability to compile, test, and deploy sophisticated AI-based functions. Its goal is to simplify the integration of AI components through various pre-built plugins or templates.
Cloud Functions enables you to run backend code without managing servers. It requires minimal maintenance and ensures the security and privacy of the deployed functions. To write functions, you'll need a Node.js environment.
Cloud Storage is a service designed for quickly storing and processing user-generated content, such as audio, videos, or photos.
Realtime Database is a cloud-hosted NoSQL database capable of storing and synchronizing data in real time. It can work offline, as the SDK uses the device's cache to publish and store changes, so when the connection is restored, local data is synchronized with the cloud.
The Data Connect product allows you to quickly build secure and scalable mobile and web applications on PostgreSQL. It also simplifies database query management by enabling schema and data definition through GraphQL interfaces.
Firebase Extensions is a set of extensions designed to boost productivity and provide additional functionality to applications. Examples include sending messages to Telegram when a user signs up, creating and deploying chatbots with the Gemini API, or resizing images uploaded to Cloud Storage, among many others.
Conclusions
In summary, Firebase presents itself as a comprehensive and versatile platform that has undoubtedly revolutionized the field of web and mobile app development. It is a tool that has continuously evolved since its inception in 2011 and currently focuses on security, user experience, and machine learning.
Firebase not only simplifies backend complexity but also offers great scalability to adapt to all types of projects, regardless of the volume of users.
Thanks to the suite of tools and products provided by Firebase, it has become the preferred choice for many users and current projects at SNGULAR, which is why there are now numerous success stories attributed to this tool.
In the following article, we will delve deeper into some of the most commonly used Firebase execution products today, which not only complement but further enhance the capabilities of this excellent platform.
Bibliography
-
Firebase documentation. (s/f). Firebase
-
Firebase integrations. (s/f). Firebase
-
Firebase community. (s/f). Firebase
-
Firebase Pricing. (s/f). Firebase
-
All extensions. (s/f). Extensions.dev
-
Clark, J. (2022, abril 15). Firebase success stories. Back4App Blog; Low-code backend to build modern apps
-
devangj9689 Follow Improve. (2020, noviembre 27). Firebase - introduction. GeeksforGeeks
Our latest news
Interested in learning more about how we are constantly adapting to the new digital frontier?
October 14, 2024
PactFlow & Contract Testing: A Bussines Case Study
October 8, 2024
Updates NIS2 Directive: What Does Your Organization Need to Know?
October 7, 2024
Custom Lint Task Configuration in Gradle with Kotlin DSL
September 27, 2024
Clean Architectures