- Client: Flutter, GetX
- Architecture: MVC
-
User state persistence
-
Firebase signup, login (using email and password), and sign out using Firebase Auth
-
Image file upload (to Firebase Storage) using Image Picker library
-
Custom user model for Firebase Firestore database
-
Getx snackbars indicating the status (error/success)
-
Set up your Firebase project with your Flutter project's bundle id and download the services.json file and then move it to the project/android/app directory.
-
Go to the Authentication tab and enable email password sign-in.
-
Create a database in Firestore and edit the rules (allow read, write; ) after it is set up, or any other custom rule.
**Note: Image Picker plugin requires additional configurational steps for ioS devices. ** For more information, refer here.
-
in lib/controller/auth_controllers registerUser function --> await firestore.collection('users'). Change 'users' to your Firestore's collection name.
-
in lib/controller/auth_controllers _uploadToStorage function --> Reference ref = firebaseStorage.ref().child('profilePics'). Change 'profilePics' to the name you want to store the photos as in your Firebase Storage.
-
review the lib/controller/auth_controllers file diligently and make changes according to the functionalities you require.
-
you can modify the existing code according to your design requirements.
-
classpath and other configurations have already been set up inside the android/app/build.gradle file and google services dependency has been added to the project-level build.gradle file.
-
min SDK version is set to 19.
Versions used in the project-:
- Flutter - ^3.1
- get: ^4.6.5
- firebase_core: ^1.18.0
- firebase_auth: ^3.3.20
- firebase_storage: ^10.2.18
- cloud_firestore: ^3.1.18
- image_picker: ^0.8.5+3