Firebase
A brief introduction to Firebase, its features, pricing, drawbacks, comparison of its real-time db with other No-SQL DBs and how we utilize Firebase in our organisation.
Firebase is a BaaS (Backend as a Service) platform for building mobile and web applications. It was founded in 2011 by Andrew Lee and James Tamplin as a platform to help developers build web and mobile applications without worrying about infrastructure. Initially, the platform offered a real-time database, authentication, and hosting features. Google then acquired the platform in 2014, which helped its growth and development, with the continued expansion of its range of services. It is a simple and user-friendly platform that doesn’t require complex configuration.
Some of the features of firebase are
- Real-time database,
- Firestore,
- Authentication,
- Cloud storage,
- Cloud Messaging
- Cloud Functions,
- Crash Reporting,
- Analytics,
- Hosting.
Realtime Database: It is a NoSQL cloud-hosted database that allows to store data and sync across multiple clients or devices in real-time.
Firestore: It is an advanced NoSQL cloud-hosted database with real-time synchronization, powerful querying capabilities, and offline support.
Authentication: It provides a simple and secure way to authenticate users with
- email and password,
- social media logins,
- custom authentication.
Cloud Storage: It provides scalable and secure cloud storage for files including media files.
Cloud Messaging: It allows sending notifications, data messages, and messages with both notification and data payloads to users on different platforms.
Cloud Functions: It allows developers to write serverless functions in JavaScript that can be triggered by events in your app or other Firebase services.
Hosting: It provides fast and secure static hosting for your web app, with automatic SSL encryption and CDN integration.
Analytics: It provides insights into user interactions with your app, including behavior, demographics, and more.
Crash Reporting: Firebase's Crash Reporting service helps developers identify and fix crashes and errors quickly and easily.
Pricing
Firebase offers a range of pricing options, with a free tier for those getting started with the platform. Paid plans are available for those who require additional storage, bandwidth, or features.
Free tier Real-time database limitations
- 100 Simultaneous connections
- 1 GB of storage
- 10 GB/month of data download
- No multiple databases per project
Drawbacks
While the platform offers numerous benefits, it does have some drawbacks to consider.
Limited Querying: The real-time db doesn’t support complex querying like SQL databases. For complex querying, additional data processing is required on the client side. This can be overcome by using Firestore which provides advanced query handling.
Vendor Lock-In: Locked into using Google’s services. Hard to migrate to another platform which requires a lot of work.
Cost: It can be expensive for Large applications and high-traffic websites.
Firebase Real-time DB vs other NoSQL DBs
Let’s compare the real-time NoSQL db provided by Firebase with other NoSQL dbs like Amazon DynamoDB, Cassandra, Couchbase, and MongoDB based on the following parameters.
Data Model: The way data is structured, stored, and accessed
Real-time Synchronization: The ability to update data across multiple clients in real-time.
Data Scalability: The ability to handle increasing amounts of data
Data Querying: Process of retrieving the data from db
Hosting & Management: The way the db is made available and managed.
How we utilize Firebase
We utilize Firebase in our organization in the following ways.
Authentication: To authenticate users in one of our applications using email and password.
Notifications: To send notifications to users in our application across multiple platforms
Firebase Queue: To manage events between micro-services
Maintenance: To manage the application. With the change of a property, the application can be put in maintenance mode.
Feature Flags: To enable or disable a specific functionality of an application.
Force refresh App: To force refresh the application for all active users at a time.
Overview
Firebase is an excellent platform for quickly and easily building high-quality, scalable mobile and web applications. With its range of powerful features and easy-to-use tools, it is a popular choice for many around the world including us.
Alternative BaaS platforms
If Firebase hasn’t impressed you yet, there are numerous BaaS platforms out there you can check out. Some of them are,
AWS Amplify: Amazon's BaaS platform that offers data storage, user authentication, and more.
Backendless: A BaaS platform that offers data storage, user authentication, and serverless functions.
Kinvey: A BaaS platform that offers data storage, user authentication, and serverless functions, as well as integrations with various third-party services.
Parse: An open-source BaaS platform that offers data storage, user authentication, and serverless functions.