Introduced in last year’s Google I/O(2016) firebase is evolving as most app developers choice to quickly spin around server side components. Google have deep thought about every product that is lined up in firebase on where and how it will help app developers to build apps quickly.
Being an early adapter and having used nearly all of the products so far in firebase I would say that firebase is involved starting from the development phase of the app life cycle.
Let us have a quick look at the firebase products and its real time usefulness.
Real-time Database – With real time database, data is stored in the cloud in a highly reliable and secured manner. Data stored is easily synchronized across multiple devices. Offline capabilities provide seamless experience by making the data always available. Developers targeting both Android and iOS platform can easily synchronize data of the user with no server setup or cloud hosted solutions.
Authentication – Authentication through many ways is made simple by providing a simple SDK to authenticate user using email, phone number, popular oAuth sign-ins and anonymous users. We can chose to stick to the existing login mechanism but leverage the firebase products by integrating existing login mechanism with Firebase Authentication SDK.
Hosting – Helps in accessing the static asset for your mobile app. If there is a web view that is used for showing dynamic promotions within the mobile app then hosting comes in very handy. This serves as a simple solution to address both major mobile platforms – android and iOS.
Cloud Functions – Unlike hosting which helps in managing static contents, cloud functions helps by responding dynamically based on the events used to trigger the functions. Functions are your servers which takes care of processing your data, respond to your request and many more. In simple words, functions hosts your business logic’s.
Cloud Storage – Helps the app developers to store the user generated data like videos, photos to store on a cloud in a secured way. The same storage can be accessed between devices and across platforms. Different from real-time database – Storage helps in handling data of bigger size more effectively.
Test lab for android – With the help of Robo, test labs can automatically test the entire app with no coding efforts from the developers. If the app is login based then the credentials have to be shared. Tests can be executed both on physical and virtual devices. Test reports provide information like screenshots, logs, performance, etc.
Deploy & Configure
Remote Config – Let’s the developer to change the appearance and behavior of the app without releasing an app update in play store. Also, the views can be customized based on the user groups or based on the analytics report, based on app version, audience, language and so on. Also conditions in remote config lets developers to use different values based on different environments like test, beta and prod.
App Indexing – More towards engaging the user to use the mobile app than showing the content on custom browser or chrome custom tabs. If the app is installed suggests the user to use the app and if the app is not installed lists the link to play store for the app as one of the search results. This is more helpful to divert the traffic to mobile app when you start migrating your website to mobile app.
Cloud Messaging – Cloud messaging is not just a upgrade from GCM to FCM. I would say FCM as a combination of both GCM and APNS in a single mode. FCM supports both android and iOS push notifications. Also, lets the user reply to the notification and sends the content back to the server. The default firebase console let’s developer to send push notifications based on analytic events, etc with no coding involved.
Dynamic Links – Deep-linking is the most desired feature that any developer would like to integrate in their app to provide high user experience and engagement. However, deep-linking was getting tedious to achieve with the product available in multiple platforms and mobile devices. Dynamic links helps in addressing the issue by providing one link and customize the behavior based on whether it is iOS, Android or Web.
Crash Reporting – Monitoring the crashes real-time in prod environment is made simple with crash reporting. This is being moved as Crashlytics. Report provides details about fatal and non-fatal device. Categorize crashes based on the app version. If the app is obfuscated using pro guard then mapping file needs to be uploaded to see the stack trace in a detailed way.
Performance Monitoring – Helps in monitoring the performance of the app with parameters like load time, app in background, foreground. Monitor the performance of the web service calls based on network, OS Type, Device, etc. It is more helpful to look quickly at the health check of the web services that the app is utilizing.
Analytics – Analytics provide insight about the custom events that the developer is interested in knowing about. Provides details like ARPU and ARPPU at a high level.
Funnels help in visualizing series of events in completing a process
Streamview help in visualizing the live stream of any random user at any point of time
And so many.
Also, analytics integrates well with the other Firebase products and lets the developer make decisions based on the outcome of analytics.
Admob – This is the usual Admob platform that is used by google. The added advantage is that based on the analytics events we can target even more richer in-app advertising.
Adwords – Similar to admob, adwords can be integrated to firebase. Analytics helps in targeting the right customer and drive more installs or gain insights on ad conversions
Invites – Helps in promoting the app by sharing the invites. Built on top of dynamic links ensures a smooth working on both android and iOS platforms.
For more details on implementation on each of firebase products please click here