Today, the market is full of server-side technologies which will provide an easy way to get started. Now, developers do not need to set up a server on their own but the service provider will by default serve them with a basic setup. Previously, setting up a server was a tedious and boring task and maintaining it became more complex but now, various kinds of server-side languages make it all easy.
What is Firebase?
Google Firebase is a backend tool to develop high-performance and scalable apps for web and mobile at low cost, time, and efforts.
History
Firebase was developed by Envolve in 2011. James Templon & Andrew Lee are the founder of that. In 2012, Firebase became a separate company. Firebase was developed for realtime chat apps initially but afterward, it was used by some game developers to store game states for real-time multiplayer games. So finally, James and Andrew decided to divide Firebase into 2 parts - a chat module and a game framework module. In 2014, Google purchased Firebase and started maintaining and improvising the Firebase. Well, today, we know it as Google Firebase.
Firebase Services
Firebase mainly divides its service into five parts,
- Analytics
- Development
- Stability & Enhancement
- Earning
- Growth
We will discuss each with its subparts in a short description.
Analytics
Firebase analytics provides a way to analyze user interaction with app or web and generate a statistical report of user behavior so that the developer can plan to make a concrete decision for app performance and revenue generation. This service is without any cost.
Development
Firebase Cloud Messaging
If you are a developer then you may be familiar with the word Firebase Cloud Messaging(FCM) and you may have used it. Google previously provided notification services using Google Cloud Messaging(GCM),. Using FCM, developers can send a notification to the web, Android and iOS. You can also send single notification or broadcast to all or to the group as well. FCM also provides a testing tool in the server and the whole process of integration is well documented and easy.
Firebase Auth
Firebase Auth service will provide authentication feature to mobile app and web. Authentication will be available for Gmail, Facebook, Twitter, GitHub, etc. It also provides email and password authentication if one wants it. There is also an option for OTP authentication in which authentication will be done using SMS. Firebase also provides free SMSs in the free subscription as well.
Firebase Realtime Database
Firebase realtime database is the first service of google firebase. Firebase realtime database stores data in the form of JSON. The database provides simultaneous multiple bidirectional communication between clients and database. It is the same kind of web socket concept that ensures any updates in the data is reflected in real time to all the connected clients in no time.
Firebase Cloud Firestore
In January 2019, Firebase Cloud Firestore introduced an enhanced version of Google Realtime database. In the Firestore database, the data storing structure has been changed. Now the data is stored as field and value pair and these field and value pairs are stored in document and a collection of documents are stored in collection. Documents also have sub-collections and subcollections also have other documents. In Firestore, the query feature is introduced to filter the data. The query is some kind of SQL in nature.
Firebase Storage
Firebase storage provides a service to store files on the server. Files may be a type of image, audio, video, pdf, doc, etc. It also provides network management during file upload and download. The task of uploading and downloading files is easy; we can say that in one line programmatically.
Firebase Hosting
Firebase hosting provides a basic hosting service to host HTML, CSS, JavaScript, and other files. This service is introduced in firebase because the developer wants to test their stuff online. Firebase hosting includes HTTPS and SSL as well.
ML Kit (Machine Learning Kit)
ML Kit is a mobile machine learning service for the developers for implementing text recognition, face detection, barcode scanning, image labeling, landmark recognition, etc. It also provides a way to implement custom feature if it is not available.
Stability & Enhancement
Crashlytics
Crashlytics will provide a service to analyze and track crashes in apps and generate a full detailed report with crash events and flow. By using the reports, developers can solve their bugs and enhance features and usability. Previously this service was provided by firebase’s own firebase crash reporting.
Performance
Firebase provides a way to test app performance according to the human behavior with the app and generate a detailed report of it so we can improvise our code and improve the performance.
Firebase Test Labs
Firebase test labs provide a service for Android and iOS to test the app in the cloud. Developers do not need any scripting for testing. Firebase automatically tests the whole app and generate a testing report for us automatically. It also provides screenshots, video, and logs of the test.
Earning
AdMob
Now, AdMob is working as part of the Firebase. All the reports and statistics are generated here. The integration of AdMob has become easy and well documented.
Growth
Firebase Dynamic Links
You have already experienced this feature in your day to day life. The web links that that directly open app with a specific screen is a part of it. Firebase dynamic links will provide the depth links for the app to open specific pages as well. This will improve the traffic in the app.
Conclusion
In this article, we have learned about Google Firebase, its history, its services, how it works, and who can use it.