A Story of Firebase or Your Next Favourite Cloud-Based Service
Building an application may seem to be a very mysterious process at first sight. It is true to a great extent however, there are numerous services which can facilitate the work a lot. Firebase is one of them. This giant is ready to take much of the heavy burden from your tender entrepreneur's shoulders.
So what is Firebase? I bet some of you guys have never heard of it (I didn't mean to hurt the informed part of the readers, my apologies). Anyway, today each and everyone is going to learn something new. Because right now, we will be overviewing Firebase and its services to finally find out how it can help you out with building your product.
Firebase as your next favourite cloud-based service
Basics of Firebase
Traditionally, we start with the history of a brand. So let's do it the same way.
Firebase was founded by Andrew Lee and James Tamplin in 2011 but was launched officially in April 2012. Originally, the system was intended to be a real-time database providing its APIs enabling users to store and sync data across different clients. However, the plans changed a little bit when Firebase was acquired by Google two years later after its release. Today, the service has a number of functions a wise entrepreneur may find very useful. I'm sure you are one of them, so let's finally figure out how and where you can apply these gifts.
There are usually two ways: you either want to develop a completely Firebase-powered application or resort to some of the service features to create a partially powered one. Now I'll try to explain what it actually means
A completely Firebase-powered application
The thing is, your future app may consist of a client code only. In this case, all you need is Firebase and its ability to distribute your product. If the description of your application matches one of the following, then Firebase should be your #1 choice:
- Your app is not about heavy data processing and doesn't have any complex user authentication needs.
- Your app doesn't need the integration with any third-party systems (payment gateway, GPS, log-in via social networks, etc.) and legacy systems (gross, outdated ones).
- You are trying to create a new application (not complex!) or give the second chance to an existing one by rewriting its code.
What happens is that the dynamic content of your application (the one that cycles constantly) and user data are stored and retrieved from Firebase. The static content of your app (the one that never changes) is packaged up into a client-side code. So here comes the first feature which makes all of the abovesaid possible
#1 Firebase Realtime Database
Realtime Database is a cloud-hosted database that allows you to store and sync data across all clients in real time.
But what is the Firebase Database secret? Nice question, actually. The thing is, Realtime Database uses data synchronization instead of usual HTTP requests. So every time any data is changed, a connected client receives these changes in no time.
Are you looking for Node.js framework? Then learn How to Choose the Best Node.js Framework
Moreover, the database is accessible directly from any client, be it a mobile device or web browser. What it means is that your application doesn't need any server-side code. Data are stored locally, which makes Firebase-powered apps responsive even though they go offline. Don't worry, thanks to Realtime Database data synchronization, clients will receive all the data they missed during their absence once connectivity is renewed.
#2 Firebase Auth
What about non-complex user authentication needs? And again, a very nice question. In case we deal with a 100% Firebase-driven app, user authentication may be performed with the help of Simple Login service which supports different networks; among them are Twitter, Facebook, Google, and GitHub. All these are in addition to a traditional email-password registration scheme. The nice thing about it is that in this case, you still don't have to write any server-side code
A partially Firebase-powered application
However, sometimes a client is not capable of doing all the work on its own. Below we have such extraordinary situations:
- Your app is a more compound solution that couldn't get along with writing a client-side code only. What's more, your server-side code should be run on a credible server.
- You want your app to be integrated with some third-party APIs (to make it geolocation aware or to let it send SMS and emails)
- Your application is about advanced authentication needs, and Firebase Simple Login service is just not enough in this case.
A partially Firebase-powered application
If you've noticed the resemblance between your app and these examples, Firebase has a huge number of features which allow you to build really good, collaborative solutions involving writing a server-side code. In other words, it provides you with backend as a service.
In case you develop a Firebase-driven app with a server code, the service plays a role of a mediator between your clients and server. To make it clear, your server is going to communicate with clients by manipulating data in Firebase. Mind you, despite the fact that now you have to run a server, Firebase still deals with real-time updates and scale.
If you already have an authentication system and want to integrate it with Firebase, the service also provides the Auth Token Generators for a number of languages. See, Farebase tries to cover all possible outcomes.
But this is just a tip of the iceberg. In fact, Firebase has much more of the exciting stuff to share...
#3 Firebase Storage
Need to give your users an opportunity share and store multimedia through your application? No problem! Firebase Storage is always at your service. It provides secure uploads and downloads of users' files even in poor network conditions.
Using Firebase Storage SDKs, developers can upload and download content right from clients to Firebase Cloud, so they could be shared with anyone else. Firebase Auth and Storage work together to provide a secure sharing of the files on your app. Hence, you can make files either public or private, limit access to certain groups of files, and control individual files see, you rule!
A poor-quality network seems like a very unpleasant thing if you want to get your photos or videos immediately. But it's not a big deal for Firebase, actually. In case the connection is lost, the client is able to continue uploading a file right from the point it was interrupted. That's vital if it comes to transferring large-size objects. With Firebase Storage feature, your users' time and bandwidth are safe, be sure.
What about scalability? I can say that you will never run out of space with Firebase Storage, just because it's backed by Google Cloud Storage which scales to petabytes. Wow! It seems that your users will be able to share billions of photos, and you will never be forced to migrate to another storage provider.
#4 Firebase Cloud Messaging
Google Cloud Messaging becomes integrated with Firebase! What it means is that company's cloud-to-device messaging is available for Firebase users for free now.
The service is equally great for iOS, Android, and Web solutions. So your users are going to benefit from a secure, real-time message exchange no matter what kind of device they use.
Do you want to create your own messenger? Learn How to Make a Messenger App
If it comes to message targeting, there are typically three ways you can send messages to your clients: to certain devices, to groups of devices, and to the devices unified by some topic. Firebase is capable of transferring payloads of up to 4KB to a client app. At the same time, FCM is optimized for reliability and battery efficiency. Well done guys!
#5 Firebase Notifications
The next question how to make your users know that there is a message or other data to check? Easily! With the help of Notifications.
You use Firebase Notification Console to compose and send notifications to your client apps. In this case, no additional coding is required. FCM takes care of the notifications routing and delivery to targeted devices. They are the same: single, grouped, and unified by Firebase Cloud Messaging topic. User retention has never been so easy!
#6 Firebase Remote Config
Remote Config is yet another cloud service that obviously worth mentioning. This feature enables you to change the app appearance and behavior without having to ask your users to download its recent update. Mystery? Don't think so.
Again, Firebase Console is here to help you get out of a fix. No more exhausting repeated releases just make some corrections to your application via Console, and no one will ever notice that there was something wrong with it just a couple of minutes ago.
#7 Firebase Test Lab for Android
Some bonus feature for Android developers (lucky ones!). Test Lab is simply perfect to exercise your app on a variety of Android devices to make sure that your users are satisfied with the quality of your app.
Do you want to create an Android-based app? Then discover 5 Hot Android App Development Trends 2017
It's not a problem if you don't have the app tests written, Robo Test will do all the dirty work for you. It analyzes and explores your app's UI structure by mimicking user activities. But Robo an also run your own tests in case you go out of your way to write them ;)
Anyway, it's not the end. Test Lab is integrated with Android Studio, Firebase Console, and gcloud command line to test your app in different environments.
#8 Firebase Crash Reporting
What is next, after Robo Test has finished with your application? Right, building a comprehensive bug report. As always, Firebase has an appropriate tool for this purpose.
Crash Reporting creates exhaustive reports on the errors occurred in your app. These errors are sorted by their severity and grouped into clusters. What's more, you can always track the issues by logging the events which led to them.
Growth and money making
An independent application using some of the Firebase features.
What if you have already built a stable application and just want to improve it a little bit? I guess Firebase may come in handy here. But don't think it will help you just a little bit it's going to make a great job of developing your product! Let's see how exactly.
Firebase app improvements
#9 Dynamic Links
Provide an awesome user experience across different platforms with Dynamic Links. They are quick, smart, and convenient! Where can you use them? Well, everywhere, literally
Dynamic Links provide a pure transfer from one point to another. That's to say, your users will never get lost on their way from the web to Android or iOS app, because unlike other deep links, these know exactly where they go. Dynamic Links will point the user directly to your app, in case they have it installed, or to the App Store page where users can easily find and download it, or, even more interesting, it can bring them to the page where they can read a little passage on how good your app is in practice before installing it.
Dynamic Links are even able to survive the app store installation process and then bring your users right where they wanted to be in the first place. As I said quick, smart, and convenient.
#10 Firebase Invites
To be honest, the Firebase Invites technology is based on the above-mentioned Dynamic Links. What are Firebase Invites? This is a cross-platform solution which enables your users to share their experience with other people. What I mean by 'experience'? Well, your app.
Supposing one user wants to share your product with someone else. Easy-breezy! Thanks to Invites, people are able to exchange the content they consider vital over SMS or email. Just because Invites are built on Dynamic Links, your users are sure to get a referral code or shared content wherever it goes from or leads to App Store, Google Play, Web, or any other place. So, your app's users can easily become your best promoters. Just give them a chance!
#11 Firebase Analytics
How to find out how many users clicked on a certain link? Or how come people found your application? Or which content attracts people best? The answer with the help of Firebase Analytics.
Analytics provides you with unlimited reporting up to 500 distinct events. But what are these distinct events? There are actually three things Firebase Analytics can provide you insights on:
- User's behavior
- Effectiveness of your advertising
- rash reporting and fixing
What does it mean? You don't have to jump between several analytic tools to make sure that your product is doing well.
Unlike the good old Google Analytics which was designed for websites, Firebase Analytics is focused on your Android and iOS applications. However, the Firebase got the best from its web-orientated friend: it's also free of charge and aimed to show the best results.
Interested in how it works? That's great. Firebase Analytics captures all the necessary data (user's properties, customary events, their number, etc.) using SDKs. Once the info is captured, it becomes available (you will never guess where) in the dashboard of the Firebase Console. So now you have literally everything to optimize your app performance and marketing: from the detailed report about your app's weaknesses to the info on the regions where your product is beloved best. Sounds like now you can conquer the whole world (of IT).
#12 AdMob + AdWords
Speaking of advertising, Firebase is now integrated with AdMob and AdWords. Make money on your product and drive your app installs using good old Google's Tools. Choose the most appropriate ads from more than million Google advertisers and track their progress using Analytics. Define a custom audience in the Firebase Console and watch your application user base grow in leaps and bounds. That's even more than two birds with one stone. I can see at least three...
#13 Firebase App Indexing
Now you can associate your website with your app and let Google Search index URLs which work for both versions of your product. Thus, the link to your website and mobile application icon both will be shown in Search results.
Honestly speaking, I'm a bit tired now, after describing all these undeniably great services suggested by Firebase. However, we have one more thing left uncovered pricing.
If you think that using Firebase is going to cost you a fortune, you are wrong. The prices here are quite reasonable. Features like Realtime Database, Storage and Android Test Lab have free plans with some additional bonuses whereas Analytics, Dynamic Links, and crash Reporting are free at all.
Mind you, Firebase is equally good for web, Android, or iOS. It means that now you can develop cross-platform solutions and use all the abovementioned services to the fullest, enjoying the results.
So, is the development process that horrifying? No, I guess it's not. Just because everything is possible with the Firebase.