Firebase — Flutter💙💛

Abhishek Doshi
Google Developer Experts
5 min readMar 8, 2022

Firebase is one of the most widely used backends with Flutter. It is developed by Google and provides a lot of functionalities. Let’s see what all functionalities are available in Firebase which we can integrate with our Flutter app!

Firebase is a platform developed by Google that provides various services that we can integrate with our apps. Here are a few of the functionalities that are provided by Firebase:

  • Authentication
  • Firestore Database
  • Realtime Database
  • Storage
  • Hosting
  • Functions
  • Machine Learning
  • Crashlytics
  • And many more…

So, let’s check what all the functionalities are used for!

Authentication

Firebase provides us with the ability to add authentication to our app. You can go to the Firebase Console and check out the list of authentication providers which you can add to your app.

To get the code reference, check out here!

Firestore Database

Firestore is one of the database services provided by Firebase. Firestore is a NoSQL document database built for automatic scaling, high performance, and ease of application development. There are 2 main components of the Firestore Database:

  • Document: A document can be considered as the tables that we have in SQL. It is the unit of record that stores values in the key-value form.
  • Collection: A collection can be considered a container of documents. In other words, collection can be considered as the database we have in SQL and documents as the tables inside the database.

Complete details along with code examples about Firestore Database can be found here!

Realtime Database

Realtime Database is another database service provided by Firebase. The main difference between Firestore and Realtime Database is that here the data is stored in the JSON format. If you don’t need advanced querying, sorting and transactions, Realtime Database is recommended. If you need complex interactions with your data, for example in e-commerce apps, Cloud Firestore is recommended.

Complete details along with code examples about Realtime Database can be found here!

Storage

Storage, as the name suggests, provides the ability to store images, files or videos on the Firebase server and manage it with ease. The best use case will be to store the Profile Picture of your users in storage. When you upload any file in Firebase Storage, a unique link is generated which gives access to that file.

Complete details along with code examples about Firebase Storage can be found here!

Cloud Functions

Cloud functions allow you to run any piece of backend code whenever you want. It can be triggered through specific events. For example, you want to update a specific user’s username in all collections when the user updates his/her username. Your cloud function is stored in Google Cloud and there is no need to manage or scale any servers.

Complete details along with code examples about Cloud Functions can be found here!

Cloud Messaging

Cloud Messaging or Firebase Cloud Messaging (FCM) can be considered as one of the most widely used Firebase functionalities after database services. Using FCM, you can send notifications to your application. Each user has a unique FCM token that renews over time. You can send up to 4 KB of payload through the notification. For example, you can send a notification when a user adds a new post or someone comments on your post!

Complete details along with code examples about Cloud Messaging or FCM can be found here!

Crashlytics

Crashlytics, as the name suggests helps us to send crash reports to our Firebase Console. Crashlytics can help you to get logs from your production level released app so that when a user complains that something is not working or is crashing the app, you can get the information from Crashlytics. Not just logs, it also gives other information like on which OS and version did the crash occurred, how many users faced this crash, and many more!

Complete details along with code examples about Firebase Crashlytics can be found here!

Dynamic Links

Dynamic links allow us to take the user from a link to specific content on your app. For example, if you are making a social media app, users can share a particular post to other users through social media, etc. and when the other user clicks on that link, you can decide what to do. If that user has the app installed, you can directly show them the specific post. If the user doesn’t have the app installed, you can navigate the user to Play Store or App Store too!

Complete details along with code examples about Dynamic Links can be found here!

Firebase Analytics

Firebase Analytics or Google Analytics for Firebase allows you to add analytics services to your app. In this functionality, you can add events whenever you want. By default, Firebase provides some analytics like how many times a page was opened, the number of active users, etc. However, you can also add custom events, for example, the user tapped on the login button, for how long a user is using the app, etc.

Complete details along with code examples about Firebase Analytics can be found here!

Remote Config

Remote Config allows you to change the appearance of your app without the users updating the app. It works on key-value pair. Let’s suppose you have the chat functionality ready but you don’t want the users to view it yet. So you can create a key-value pair, isChatVisible and set it to false. Now, you can fetch this in your app and determine whether to show the chat functionality or not. Now, whenever you want to show it, just change the value to true!

Complete details along with code examples about Remote Config can be found here!

Conclusion

So, in this article, we went through major services provided by Firebase. There are a few more of them but these were the ones that are widely used! Firebase can be one of the best options for your backend as it’s free up to a certain limit which might get your work done!

Hope you enjoyed this article!

If you loved it, you can Buy Me A Coffee!

Don’t forget to connect with me on:

Don’t stop, until you are breathing!💙
- Abhishek Doshi

--

--

Abhishek Doshi
Google Developer Experts

Google Developer Expert — Dart, Flutter & Firebase 💙💛