A month of Flutter: setting up Firebase Firestore
After a user signs in with Google and registers, their info needs to be saved to a databasee. I'm going to use Firebase Firestore as my backend. Within the birb
codebase I'm going to create a server
directory and initialize a Firestore project inside it using firebase-tools.
$ firebase init
######## #### ######## ######## ######## ### ###### ########
## ## ## ## ## ## ## ## ## ## ##
###### ## ######## ###### ######## ######### ###### ######
## ## ## ## ## ## ## ## ## ## ##
## #### ## ## ######## ######## ## ## ###### ########
You're about to initialize a Firebase project in this directory:
/home/abraham/Development/birb
? Which Firebase CLI features do you want to setup for this folder? Press Space to select features, then Enter to confirm your choices.
◯ Database: Deploy Firebase Realtime Database Rules
❯◉ Firestore: Deploy rules and create indexes for Firestore
◯ Functions: Configure and deploy Cloud Functions
◯ Hosting: Configure and deploy Firebase Hosting sites
◯ Storage: Deploy Cloud Storage security rules
I choose the same Firebase project being used for authentication, the default Firestore Rules file, and the default Firestore indexes file. By default .firebaserc
is not .gitignored
. I have added my .firebasrc
to .gitignore
because this is an open source project. Anyone who forks Birb will need to set up their own Firebase project.
In the Firebase console I will now enable Firestore for the project.
Here are the default firestore.rules
that just say don't allow reads or writes.
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if false;
}
}
}
Deploying the rules is handled with the firebase-tools Node package.
$ npx firebase deploy
=== Deploying to 'birb-app-dev'...
i deploying firestore
i firestore: checking firestore.rules for compilation errors...
i firestore: reading indexes from firestore.indexes.json...
✔ firestore: rules file firestore.rules compiled successfully
i firestore: uploading rules firestore.rules...
✔ firestore: deployed indexes in firestore.indexes.json successfully
✔ firestore: released rules firestore.rules to cloud.firestore
✔ Deploy complete!
Project Console: https://console.firebase.google.com/project/birb-app-dev/overview
Installing the cloud_firestore
package in pubspec.yaml
happens last.
Before integrating with the Flutter code, I'm going to write some rules with so come back soon for that article.