Implementing Firebase Authentication with Riverpod following Flutter Domain Driven Development pattern

Overview

firebase_auth_flutter_ddd

Firebase authentication example with Hooks Riverpod and Freezed following Flutter DDD architecture

Getting Started

This project is a starting point for a Flutter application.

A few resources to get you started if this is your first Flutter project:

For help getting started with Flutter, view our online documentation, which offers tutorials, samples, guidance on mobile development, and a full API reference.

Comments
  • Looks great, but....

    Looks great, but....

    It seems far more complicated than it needs to be just to log someone in.

    Considering this is linked to from the official Riverpod site, could you please document your work, why it should be done the way you've done it, etc?

    Much appreciated.

    opened by wilpar 2
  • Bump freezed from 2.2.1 to 2.3.0

    Bump freezed from 2.2.1 to 2.3.0

    Bumps freezed from 2.2.1 to 2.3.0.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Bump build_runner from 2.2.1 to 2.3.0

    Bump build_runner from 2.2.1 to 2.3.0

    Bumps build_runner from 2.2.1 to 2.3.0.

    Commits
    • d927428 add performance tracking to all methods on PerActionResolver (#3282)
    • 64b44f2 latest mono_repo (#3279)
    • f82f3dd Report changed assets through build daemon (#3273)
    • 02758c0 revert the markdown checker to a previous version (#3272)
    • e0bb137 Require analyzer 3.4.1, prepare for future breaking changes. (#3269)
    • 09c1d25 update to package:lints 2.0 (#3267)
    • 06be5da fix up the formatting a bit for directory watcher errors (#3266)
    • e5ca73c Bump gaurav-nelson/github-action-markdown-link-check (#3261)
    • a387d70 support null stack traces coming from the build_runner script isolate (#3260)
    • 6ccafdf fix build_resolvers tests (#3257)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Bump firebase_core from 1.23.0 to 1.24.0

    Bump firebase_core from 1.23.0 to 1.24.0

    Bumps firebase_core from 1.23.0 to 1.24.0.

    Changelog

    Sourced from firebase_core's changelog.

    firebase_core - v1.24.0

    firebase_core_web - v1.7.3

    • FIX: explicitly set null value on Firestore data object property value (#9599). (e61b6039)

    firebase_database - v9.1.6

    • DOCS: removed duplicate words in dart doc comment (#9620). (cb980a6e)

    2022-09-22

    Changes


    Packages with breaking changes:

    • There are no breaking changes in this release.

    Packages with other changes:

    ... (truncated)

    Commits
    • 40abf93 chore(release): prepare for release (#9637)
    • 7cd76a1 chore: Add _fluttefire_internals and extract firebase_core/src/internals to t...
    • e61b603 fix(firestore, web): explicitly set null value on Firestore data object pro...
    • 2138f4a feat: Bump Firebase iOS SDK to 9.6.0 (#9531)
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Bump firebase_auth from 3.10.0 to 3.11.2

    Bump firebase_auth from 3.10.0 to 3.11.2

    Bumps firebase_auth from 3.10.0 to 3.11.2.

    Changelog

    Sourced from firebase_auth's changelog.

    firebase_auth - v3.11.2

    • DOCS: update setSettings() inline documentation (#9655). (39ca0029)

    firebase_auth_platform_interface - v6.10.1

    • FIX: Exceptions inside Query.snapshots() and more now have a stack trace that correctly points to the invocation of the throwing method (#9639). (2f7adcb7)
    • DOCS: update setSettings() inline documentation (#9655). (39ca0029)

    firebase_crashlytics - v2.8.13

    • FIX: parameter information accepts Iterable<Object> for further diagnostic logging information (#9678). (2d2b5b03)
    • DOCS: add note for crash() that the app needs to be restarted to send a crash report (#9586). (3a3e5212)

    firebase_crashlytics_platform_interface - v3.2.19

    • DOCS: add note for crash() that the app needs to be restarted to send a crash report (#9586). (3a3e5212)

    firebase_database_platform_interface - v0.2.2+7

    • FIX: Exceptions inside Query.snapshots() and more now have a stack trace that correctly points to the invocation of the throwing method (#9639). (2f7adcb7)

    firebase_messaging - v13.1.0

    • FEAT: add support for exporting delivery metrics to BigQuery (#9636). (170b99b9)

    firebase_messaging_platform_interface - v4.2.0

    • FEAT: add support for exporting delivery metrics to BigQuery (#9636). (170b99b9)

    firebase_messaging_web - v3.2.0

    • FEAT: add support for exporting delivery metrics to BigQuery (#9636). (170b99b9)

    2022-10-03

    Changes


    Packages with breaking changes:

    • There are no breaking changes in this release.

    Packages with other changes:

    ... (truncated)

    Commits
    • 5442fc0 chore(release): prepare for release (#9686)
    • 8e81324 test: Remove useless StreamSubscription from e2e tests (#9674)
    • 2f7adcb fix: Exceptions inside Query.snapshots() and more now have a stack trace that...
    • 39ca002 docs(auth): update setSettings() inline documentation (#9655)
    • 60f7a2e chore(release): prepare for release (#9660)
    • 3f76b53 feat(auth, ios): fix an iOS crash when using Sign In With Apple due to invali...
    • 40abf93 chore(release): prepare for release (#9637)
    • 7cd76a1 chore: Add _fluttefire_internals and extract firebase_core/src/internals to t...
    • cb6661b feat(auth): add OAuth Access Token support to sign in with providers (#9593)
    • d834b90 feat(auth): add linkWithRedirect to the web (#9580)
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Bump hooks_riverpod from 2.1.1 to 2.1.3

    Bump hooks_riverpod from 2.1.1 to 2.1.3

    Bumps hooks_riverpod from 2.1.1 to 2.1.3.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Bump build_runner from 2.3.2 to 2.3.3

    Bump build_runner from 2.3.2 to 2.3.3

    Bumps build_runner from 2.3.2 to 2.3.3.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Bump freezed from 2.2.1 to 2.3.2

    Bump freezed from 2.2.1 to 2.3.2

    Bumps freezed from 2.2.1 to 2.3.2.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Bump hooks_riverpod from 2.0.2 to 2.1.1

    Bump hooks_riverpod from 2.0.2 to 2.1.1

    Bumps hooks_riverpod from 2.0.2 to 2.1.1.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Bump freezed from 2.1.1 to 2.2.1

    Bump freezed from 2.1.1 to 2.2.1

    Bumps freezed from 2.1.1 to 2.2.1.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Bump build_runner from 2.2.1 to 2.3.2

    Bump build_runner from 2.2.1 to 2.3.2

    Bumps build_runner from 2.2.1 to 2.3.2.

    Commits
    • ad398e4 specify platform support in the pubspec (#3386)
    • afdc5cb Expand build compiler package descriptions (#3384)
    • 8578d15 Bump dependency on frontend_server_client (#3383)
    • 7ef04f8 Expand build_runner_core pubspec description (#3382)
    • adc0df9 Expand build_modules pubspec description (#3381)
    • 141f66f Expand build_config pubspec description (#3380)
    • 3191e84 add -d abbreviation for --delete-conflicting-outputs (#3378)
    • 9648eff fix analyzer deprecations (#3376)
    • 7409980 Use declareVar and declareFinal from code_builder (#3373)
    • 86acdaf Fix bug with manual deletions of files from build steps with multiple outputs...
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
Owner
Python Hub
Flutter Developer, Open Source Contributor, Teacher, YouTuber. Love to work with Flutter and Python.
Python Hub
Caching with flutter riverpod and looking into future providers. Example to demonstrate stale while revalidate pattern.

FLUTTER SWR EXAMPLE Test stale-while-revalidate pattern with riverpod. Look; query_provider package Backend calls are made with ghibli-api Tested Prov

Dipesh Dulal 7 Jun 30, 2022
Actively maintained, community-driven chat UI implementation with an optional Firebase BaaS.

Flutter Chat UI Actively maintained, community-driven chat UI implementation with an optional Firebase BaaS. Flyer Chat is a platform for creating in-

Flyer Chat 662 Jan 7, 2023
⚡⚡ flutter mobile dapp to register/mint domain names (.voltz) on the polygon blockchain network (mumbai)

open-name-service connecting to wallet registering a domain on the network fetching address by domain name & viewing domain on opensea testnet .voltz

Chinyeaka Chinonso 10 Dec 11, 2022
A Flutter application implementing AR core, Text-to-speech, and Speech-to-text technologies.

ar_x_ai A Flutter application implementing AR core, Text to speech and Speech to text technologies. Getting Started This project is a starting point f

Alston Fernandes 1 Dec 17, 2021
story_designer is created to help developers out there who are looking for implementing Instagram like stories editor.

story_designer A package for creating instagram like story, you can use this package to edit images and make it story ready by adding other contents o

Gulshan Yadav 19 Nov 2, 2022
FlutterDux - Redux.JS driven Flutter

FlutterDux Flutter + Redux.js Android only at the moment, iOS coming soon. Getting Started Check out this article for a description of how it works. L

Paul DeMarco 6 Jul 28, 2019
Rokeet UI - A Server Driven UI Framework

Rokeet UI A Server-Driven UI framework. Status Lib Build Coverage Core Configure Mockoon server Install Mockoon: Mac OSX brew install --cask mockoon

osodroid 6 Apr 7, 2022
Email and Password Authentication In Flutter & Firebase in Flutter 2.2

Email and Password Authentication In Flutter & Firebase in Flutter 2.2

BackSlash Flutter 43 Nov 23, 2022
A Flutter package to simplify firebase authentication.

firebase_authentication A Flutter package to simplify firebase authentication. Development State This is in a very, very early stage. It's a draft bas

Daniele Cambi 32 Apr 24, 2022
Use Firebase authentication with Flutter

user_login A skeleton futter project that use Firebase for user authentication. This project has be tested to run well on iOS, Android and WEB. I have

Dongjin Zou 0 Dec 26, 2021
A starter helper for flutter developers wanting to use firebase phone authentication in their app.

riverpod_firebase_phone_auth A new Flutter project template showing how to handle mobile authentication using Firebase and Riverpod. Packages Used Fre

Douglas Bett 8 Oct 31, 2022
Flutter Firebase CRUD Authentication.

flutterfire_samples A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you star

null 0 Nov 30, 2021
Resturant FlutterApp withApi - A flutter app of a such restaurant with API and Firebase Authentication

Resturant_FlutterApp_withApi This is flutter app of a such restaurant with API a

null 32 Oct 5, 2022
Firebase authentication 2021

firebase_authentication A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you

nsthienvku 1 Oct 27, 2021
Implementation and architecture for Firebase Authentication

fluttercompoundapp A new Flutter application. Getting Started This project is a starting point for a Flutter application. A few resources to get you s

Emmanuel Ahuno 0 Nov 27, 2021
Managing flutter navigation with riverpod.

Navigation for Riverpod Managing Flutter navigation with riverpod. Usage Bootstrap Replace your root ProviderScope with a RiverpodNavigation widget wi

Aloïs Deniel 28 Sep 5, 2022
Weather App built in Flutter and Riverpod state management

?? Weather App built with Riverpod This is a weather app built using Riverpod as it's State Management. This project is an attempt to rewrite the Weat

Temitope Ajiboye 49 Dec 7, 2022
A playground for me to learn the Riverpod state management library in Flutter.

clothes_shop A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you started if

Benhenneda Majid 2 Oct 25, 2021
Rest API Movie Application built using Flutter and Riverpod

Flickd Flutter Application Flickd Movie Application Flutter Flutter allows you to build beautiful native apps on iOS and Android Platforms from a sing

null 20 Dec 5, 2022