Firebase Framework Review
Introduction: What is Firebase?
The use of smartphones for almost anything has made it a priority for companies to create a touch point on them, so that customers could interact with their brand, and do a myriad of actions. To put this in proper perspective, presently, there are over 2.6 billion smartphone subscriptions in the world; a figure that will more than double in the next four years and reach the number of 6.1 billion by 2020, according to an Ericsson mobility report in 2015. This makes having a presence on smartphones non-negotiable for any serious company.
In this Firebase review, we will be examining the history, key features of the framework, its pros and cons, as well as the benefits it can offer to developers.
Brief History of Firebase
It all started as Envolve in 2011 before an official launch in April 2012. It initially provided API for developers to integrate online chat into websites. However, they found other ways to work with the API and used it for syncing data in real time for their applications. This prompted the creators – Andrew Lee and James Tamplin – that they should separate the framework, making the online chat possible apart from that chat system architecture and present it as a standalone service. It became Firebase. Having acquired the company in 2014, Google also bought Divshot in 2015 and merged them both together creating what it is today.
Features of Firebase
The heart of the framework is its Analytics, a free and unlimited solution which integrates across Firebase features. For businesses, making informed decisions can make or break everything, and the same is true for applications as well. To find out what users like and what they avoid, you need to track their behavior, the platform used and how they respond to your design. With the help of the Analytics, developers using Firebase can track 500 unique events on their app surmised into user behavior, crash report and errors and monitor ad performance. Peeking into data can help developers make better decisions than guessing and relying on “gut feeling”.
- Real-time Database
Firebase has a cloud-hosted database that makes Realtime Database synchronization possible. This is done by sharing the same database instance with all clients be it web or mobile applications. All server-side components are already implemented by the framework. So, all users will receive every change made, as long as they are connected to it. Firebase apps remain responsive even when they are offline because the Firebase Realtime Database SDK saves your data to disk.
- User Authentication
This is the first layer of Firebase security. The framework provides user authentication through its back-end service. With its help, developers can integrate different networks – Twitter, Github, Facebook and Google – in addition to the conventional email-password registration all are accustomed to. In this case, server-side coding is not necessary. The framework also helps developers who already have an authentication system to integrate it with their applications, and in different languages at that.
- Cloud Storage
All apps include some form of data storage and exchange, no matter how minimalist it seems. Controls and security are required more when privacy might be involved. So, the Auth system works in tandem with the storage system to produce a secure file sharing application where users can share content and files. Additionally, it provides control over the data, that is, developers can set rules and limit access to certain files by certain users. And being involved with the Google platform means Firebase apps have access to Google Cloud Storage petabytes of space. Why is that important? In case your application scales, you don’t have to look for a new platform.
- Cloud Messaging
Since being acquired by Google, the framework now has access to the Google Cloud Messaging platform. Developers utilizing the platform have access to it as well, and it’s free. The service makes real-time messaging possible on all the platforms – iOS, Android and Web applications.
Remember the real-time updates we talked about earlier? Notifications allow users to receive alerts when there is new data or a message requiring their attention. It can be an application update message or a new personal message. How to do this? Simply, use the Notification Console to craft messages and send the same to your users. No coding is required, as the Firebase Cloud Messaging (FCM) service makes it possible.
Notifications are closely integrated with the Analytics, allowing you to select the right target audience. Using the Notifications, you can reengage and keep your users or run marketing campaigns.
- Test Lab for Android
Unlike iOS which can only be modified by Apple, different smartphone makers can alter various parts of the Android operating system, adjusting it for personal use. It creates a problem of reliability and uniformity of user experience across different Android devices for developers. The Test Lab solves this conundrum. It test-runs applications on different Android devices to make sure they work smoothly on any device. The framework uses Robo Test to simulate user interaction with your app to find probable points of unsatisfactory behavior. The Test Lab is an incorporation of Google data center, Robo Test, Android Studio and the Firebase Console and makes life easier for developers using Firebase.
- Remote Config
How cool can it be for people to launch their apps and find the user interface and experience updated without them having to do it? Seems farfetched, right? But that’s what Remote Config gets you. All you need to do is use the Console to make whatever tweaks you want and in the twinkle of an eye, the changes are effected across the board. If you are not sure about the updates you can roll out a new configuration to a segment of users which you selected from analytics and test if it is good.
- Dynamic Links
Dynamic links are “smart URL” that adapt to different device platforms without a change in user experience. For example, one single link can serve to open an app, or a web page depending on the platform the user is utilizing. Dynamic links or URLs will also prompt users not having your application to install it before they can view the content of the links. With this, app developers can increase conversions. It can be specifically important when you run campaigns via email, social media and other channels.
When an application is created, the developer’s goal is to reach out with it to as many users as possible. Without a huge marketing budget, that can be a big challenge. Using Firebase invites is akin to word-of-mouth marketing. Current users can distribute messages, informing their friends and family about your app. This way, they can send personalized SMS and email invitations across platforms using the “invites” service. This is a cost-effective way to reach out to more people, especially if you’ve built something great. It is important to note that these invites are dynamic links that should create a very nice first impression.
- Crash Reporting
You can monitor errors and see the events that led to those errors through the crash reporting service. It gives developers a thorough overview of what has gone wrong in their app. This service groups errors by their severity to make it easy to track and find issues that require immediate attention. But this is still in beta release.
- App Indexing
Link your app and your website together, so they both appear on search engine queries. The Firebase framework makes it easy for Google to index your URLs.
- Integration with Adwords and Admob
The framework makes it easy to integrate Google’s Adwords and Admob into your application, giving developers an avenue to make money with their product. They can set their preferences for the kind of audience their Firebase apps serve via the Console.
Firebase: Pros and Cons
The Firebase framework offers a plenty of useful services which are ready solutions for some common functionality you want to implement in your application. But there are always some risks. Real-time database and Cloud storage generally follow fat-client architecture. This means that most of the business logic is implemented on the client side (inside Android, iOS, Web application). For some cases it’s good because a client application is more responsive in offline mode then a thin-client app. With a fat client you still need to have some small back end that runs in a cloud. Some code must work remotely because it requires access to secrets you cannot trust to function in someone’s browser.
For example you want to make a credit card payment in your application. The final step to charge it requires a call to the card provider’s API using the merchant’s secret API key. To authorise the payment — you can’t load that secret API key inside a user’s browser. You can't trust a user’s browser to call through to the database and grant the user access to content bought. If it was done inside the browser anyone could write some code there to get purchases without paying!
Advantages of Firebase
- Very affordable, especially with the plethora of features
- Using Firebase is easy and you can start building apps in no time. The framework also supports simple user authentication with different networks
- You can manipulate the data from a user interface
- The APi documentation is extensive and causes no difficulties to use it
- You can integrate it with other frameworks such AngularJS, React, Ember, Ionic
- The ease of implementation. Firebase tutorial is enough to get started
- Fantastic for small to medium-size projects
- Developers can add extra Firebase security to their apps
Disadvantages of Firebase
- Might not be easy to integrate with other third-party API
- Some services are still in beta release
- The hosting has no version control tools
- File transfer rate can be on the slow side
- A server is still required for security solutions
- When an application grows it’s a good idea to move most of business logic to a server from the client application. This will make your project more flexible, scaleable. It also helps to avoid common bugs in different platforms and release a bug fix faster by pushing to server.
Building a powerful web, Android or iOS application no longer has to be expensive, tedious and slow to get to the market. Think about the right architecture of the project. You can speed up the process of having a finished application as well as reduce the cost of development using Firebase. The features highlighted above have successfully answered the “what is Firebase” question. And with a free option giving you access to 100 simultaneous connections, there’s an incentive to get started on using this framework.
Looking to hire skilled Android or iOS app developers?
Our team is here to consult you about all the ins and outs of the process and buils a great mobile application for you. Get in touch with us to learn more.