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 rulesI 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/overviewInstalling 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.
