{"id":19519054,"url":"https://github.com/bizz84/firebase_user_avatar_flutter","last_synced_at":"2025-04-26T07:31:05.077Z","repository":{"id":46698065,"uuid":"213667860","full_name":"bizz84/firebase_user_avatar_flutter","owner":"bizz84","description":"Advanced Provider Architecture Demo: Image Picker + Firebase Storage Upload","archived":false,"fork":false,"pushed_at":"2022-11-09T13:51:45.000Z","size":933,"stargazers_count":154,"open_issues_count":4,"forks_count":61,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-04-26T06:02:28.654Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://codewithandrea.com/","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bizz84.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-10-08T14:35:50.000Z","updated_at":"2025-03-08T19:55:52.000Z","dependencies_parsed_at":"2023-01-22T10:15:49.934Z","dependency_job_id":null,"html_url":"https://github.com/bizz84/firebase_user_avatar_flutter","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bizz84%2Ffirebase_user_avatar_flutter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bizz84%2Ffirebase_user_avatar_flutter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bizz84%2Ffirebase_user_avatar_flutter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bizz84%2Ffirebase_user_avatar_flutter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bizz84","download_url":"https://codeload.github.com/bizz84/firebase_user_avatar_flutter/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250953326,"owners_count":21513297,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-11T00:16:03.769Z","updated_at":"2025-04-26T07:31:04.733Z","avatar_url":"https://github.com/bizz84.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Advanced Provider Architecture Demo: Image Picker + Firebase Storage Upload\n\nThis project shows how to capture, upload and show an avatar image, while supporting multiple user accounts with Firebase.\n\nIt serves as the foundation for the following tutorials on Provider architecture:\n\n## Advanced Provider Tutorial - Part 1: Project Setup \u0026 Authentication Flow\n\nTo get started with this tutorial, checkout the [`initial-setup`](https://github.com/bizz84/firebase_user_avatar_flutter/tree/initial-setup) branch.\n\nThen, follow the steps in [Firebase Configuration](#firebase-configuration).\n\nVideo tutorial here:\n\n[![Advanced Provider Tutorial - Part 1: Project Setup \u0026 Authentication Flow](media/flutter-provider-advanced-banner-1.png)](https://youtu.be/j8P__wcq2YM)\n\n## Advanced Provider Tutorial - Part 2: MultiProvider, Multiple Services \u0026 Stream Dependencies\n\nTo continue from the end of the previous tutorial, checkout the [`authentication-complete`](https://github.com/bizz84/firebase_user_avatar_flutter/tree/authentication-complete) branch.\n\nVideo tutorial here:\n\n[![Advanced Provider Tutorial - Part 2: MultiProvider, Multiple Services \u0026 Stream Dependencies](media/flutter-provider-advanced-banner-2.png)](https://youtu.be/wxN1L3RfulI)\n\n## Advanced Provider Tutorial - Part 3: Dependencies Between Providers\n\nTo continue from the end of the previous tutorial, checkout the [`working-implementation`](https://github.com/bizz84/firebase_user_avatar_flutter/tree/working-implementation)  branch.\n\nVideo tutorial here:\n\n[![Advanced Provider Tutorial - Part 3: Better APIs, Navigation, Widget Rebuilds](media/flutter-provider-advanced-banner-3.png)](https://youtu.be/wxN1L3RfulI)\n\nThe final, completed project is available on the [`optimized-implementation`](https://github.com/bizz84/firebase_user_avatar_flutter/tree/optimized-implementation) branch.\n\n## Firebase Configuration\n\nTo use this project with Firebase authentication, some configuration steps are required.\n\n- Create a new project with the Firebase console.\n- Add iOS and Android apps in the Firebase project settings.\n- On Android, use `com.example.firebase_user_avatar_flutter` as the package name (adding a SHA-1 certificate fingerprint is **not** needed for this project).\n- then, [download and copy](https://firebase.google.com/docs/flutter/setup#configure_an_android_app) `google-services.json` into `android/app`.\n- On iOS, use `com.example.firebaseUserAvatarFlutter` as the bundle ID.\n- then, [download and copy](https://firebase.google.com/docs/flutter/setup#configure_an_ios_app) `GoogleService-Info.plist` into `iOS/Runner`, and add it to the Runner target in Xcode.\n\nSee this document for full instructions:\n\n- [https://firebase.google.com/docs/flutter/setup](https://firebase.google.com/docs/flutter/setup)   \n\n## Additional References\n\nA lot of the techniques used in this project are explained in great detail, and implemented step-by-step in my Flutter \u0026 Firebase Udemy course.\n\nThis is available for early access at this link (discount code included):\n\n- [Flutter \u0026 Firebase: Build a Complete App for iOS \u0026 Android](https://www.udemy.com/flutter-firebase-build-a-complete-app-for-ios-android/?couponCode=DART15\u0026password=codingwithflutter)\n\n## [License: MIT](LICENSE.md)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbizz84%2Ffirebase_user_avatar_flutter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbizz84%2Ffirebase_user_avatar_flutter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbizz84%2Ffirebase_user_avatar_flutter/lists"}