Skip to content

maurim96/flutter-firebase-scaffold

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚧 👷 Flutterfire Scaffold - Under construction... 👷‍♀️ 🚧

Description

Flutterfire scaffold project intended to minimize the initial time setup of any Flutter + Firebase + Riverpod project. Includes basic features, setup configurations, flutter flavors for environments management, authentication, state management initialization, routing and a couple of standard screens

Flutter + Firebase + Riverpod logo

Flutterfire + Riverpod

Prerequisites

Prerequisites Steps

  • Setup two Firebase Projects (Dev & Prod) - https://console.firebase.google.com/

  • Enable Authentication: Email and Password, Google and Apple providers

  • Enable Firestore Collection from Firebase console. Basic rule you can implement:

      rules_version = '2';
      service cloud.firestore {
        match /databases/{database}/documents {
        function isLoggedIn() {
            return request.auth != null;
          }
          
          match /{document=**} {
            allow read, write: if isLoggedIn();
          }
        }
      }
    
  • Run flutterfire configure for each of them (it will generate 3 files per environment):

    • Rename and replace firebase_options_dev.dart and firebase_options_prod.dart inside app/lib
    • Replace google-services.json inside app/android/app/src/dev and app/android/app/src/prod
    • Replace firebase_app_id_file.json inside app/ios/Runner/Firebase/Dev and app/ios/Runner/Firebase/Dev
      • Important: drag and drop the files from XCode, otherwise it won't work

Useful Commands

  • Build injection dependencies
    • dart run build_runner build --delete-conflicting-outputs
  • Run app in debug mode - dev
    • flutter run --flavor dev
  • Build app in release mode for ios - dev
    • flutter build ios --release --flavor dev
  • Build app in release mode for android - dev
    • flutter build apk --release --flavor dev
  • Run app in debug mode - prod
    • flutter run --flavor prod
  • Build app in release mode for ios - prod
    • flutter build ios --release --flavor prod
  • Build app in release mode for android - prod
    • flutter build apk --release --flavor prod

Architecture

Clean Architecture + Repository Pattern

Structure Example

Packages

Features & Libraries

State Management

Riverpod

Firebase Features

Authentication

-> Email & Password (4.6.3) - https://pub.dev/packages/firebase_auth
-> Google Provider (6.1.4) - https://pub.dev/packages/google_sign_in

Persistance

-> Firestore Collection (4.8.2) - https://pub.dev/packages/cloud_firestore

Push Notifications

-> Firebase Messaging (14.6.4) - https://pub.dev/packages/firebase_messaging

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages