What is Firebase?
Not much really. Just a small set of tools.
… if small was a large number.
Firebase delivers tons of features. It can handle everything across the cloud, provide you with free analytics for your app, new ways to test your app at light speeds, or even configure your app differently for specific audiences. Firebase can make both the development efficiency and the quality of an app shoot up to great heights.
Taking your first step into Firebase can be intimidating, but even if you don’t have much experience in Android Development, there’s no reason not to learn it. By learning one tool at a time, you will come to grips with Firebase much faster than you’d expect. So here, I’m going to list some of the most powerful tools of Firebase, and definitely ones that you should try out for yourself.
1. Cloud Database and Storage
I found Firebase while I was still fresh as an Android Developer (not saying that I’ve gotten stale (ง ͠° ͟ل͜ ͡°)ง). Before this, I dreaded the difficulty of setting up a cloud database for my app. Then Firebase was announced at Google IO ’16 and hell I was excited to get into it.
Firebase Cloud Database is a NoSQL database formatted in JSON meaning that items aren’t stored in tables or rows. This makes it great for making hierarchical database structures which are easier to manage and scale. (as said here).
However, the best parts of the Firebase Cloud Database is its offline capability and real-time syncing. If your device loses connection to the internet, Firebase stores your data in local caches so that data can be accessed without internet connection. When data is updated on the cloud servers, an event can be called immediately on your device. This will present you with fresh data that you can use to update your app during its runtime. This makes it perfect for things like instant messaging.
Firebase Cloud Storage allows you to store larger files such as images and sounds and makes it so easy to download and upload files to the cloud. Both the cloud database and storage also allow security rules you can write to define which users have access to certain data.
This is another thing I’ve been dreading during my fresh period. How do I get my users to create accounts and log into my app? Well, Firebase Authentication was the answer.
Firebase Authentication makes it easy to create an account or log in to your app through different methods, whether they use their email to create an account or log in through platforms such as Google, Firebase, or Twitter.
This allows your app to give each user a tailored experience and sync their data across different devices through the cloud database. Firebase even provides a fully-customisable UI designed by Google implementing years of the best design practices, should you not want to make your own from scratch.
3. Crash Reporting
You never want your app to be malfunctioning for your users, but face it. It’s bound to happen.
When it does, Firebase Crash Reporting immediately notifies you through their console and by email about the crash that occurred. It also gives you useful details such as the phone model, android version, connection status, and (thank god for this), the line number where the crash occurred. This shortens debugging time from hours on end trying to find the cause of the problem to only a couple of minutes.
4. Remote Config
This one is a a bit less self-explanatory, but when I found this, I regret that I hadn’t found it sooner.
Firebase Remote Config does a few great things.
• You can change your app’s appearance and behavior without releasing new updates, by changing server-side parameter values. With this, you can deploy changes to your app that will update on user devices within a matter of minutes. Imagine a scenario where you published your app and found out that your Swedish text contains offensive language. Using Remote Config, you can make those changes through the cloud and update it immediately. The next time your users fire up your app on their phone, the language is already fixed.
• You can tailor your app to different audiences. By segmenting your user base by user property, locale, android version, etc., you can deliver each segment different functionality for a tailored experience. For example, in a game, some users may think a certain level’s too hard while other users will be disappointed with a game that’s too easy for them. You can now please both audiences simultaneously.
• A/B testing allows you to test new features with smaller audiences. This helps you know you’re doing the right thing before you push your update to your full audience.
If you haven’t already, just go take a look. These are only a couple of everything that Firebase can do. In a nutshell, Firebase makes an app easier to develop, scale, and maintain. What are you still doing here? Shouldn’t you be looking up some tutorials or something? Well if I failed to convince you (even though that’s impossible because I don’t fail), these people have also written about Firebase and you could go check them out.