December 6, 2019 - 4:06 pm
Flutter with Firestore: Mobile App using Real Time and Auto Sync Database
Flutter is a UI toolkit for building applications for mobile, web and desktop from a single codebase. It is developed by Google.
We can use Rest API to process data in Flutter. Also, there is some database by which we can connect directly from the app. Cloud Firestore is one of them. We will discuss how can we connect our Flutter app with Cloud Firestore and some of its awesome features in this blog.
Firebase comes up with a more advanced version of it which is called Cloud Firestore. It is also a NoSQL Database with a realtime feature. The difference with Firebase is its structure of data storage. Usually, realtime databases stores data in JSON tree. But in Cloud Firestore, it stores as a collection. On collection, It can have any number of Documents; these documents contain data.
Cloud Firstore with Flutter
There is a package cloud_firestore for a flutter. From https://pub.dev/, get the package to the Flutter project.
Using the Firebase Console, add an android app to the project and then follow the steps. And, download the google-services.json file and place it inside android/app after that modify the android/build.gradle file and the android/app/build.gradle file to add the Google services plugin as described by the Firebase assistant.
The detailed documentation you will find from here https://pub.dev/packages/cloud_firestore.
After connecting the Cloud Firestore to the app, we can create, read and update the database from the app.
Features of Cloud Firestore
1. Stores data as collections of documents.
- Simple data is easy to store in documents, which are very similar to JSON.
- Complex, hierarchical data is easier to organize at scale, using sub-collections within documents.
- Requires less denormalization and data flattening.
2. Offline Support
- You can use the database as offline. There is no need to worry about other things. The firestore package will handle it. When the database is connected to the internet, it will automatically sync with the firestore database. And, if the database is changed by others, the app will update it’s UI according to new data in real-time.
3. Reliability and Performance
- Cloud Firestore is a multi-region solution that scales automatically.
- It automatically scales the database. Currently, the limits are around 1 million concurrent connections and 10,000 writes/second.
Cloud Firestore is a fast, fully managed, serverless document database that simplifies it to store, sync, and query data for mobile, web and IoT apps at a global scale.