From 94c63335096007c517189d7331d7fb1e032e20b5 Mon Sep 17 00:00:00 2001 From: Chris Thompson Date: Wed, 13 Sep 2023 01:01:44 -0700 Subject: [PATCH 1/4] Upgrade deps, fix a name conflict, add a note about running on web. --- firestore/README.md | 5 +++ firestore/android/build.gradle | 2 +- .../gradle/wrapper/gradle-wrapper.properties | 2 +- .../lib/src/data/restaurant_provider.dart | 6 +-- firestore/pubspec.lock | 44 ++++++++----------- firestore/pubspec.yaml | 6 +-- .../flutter/generated_plugin_registrant.cc | 3 ++ .../windows/flutter/generated_plugins.cmake | 1 + 8 files changed, 35 insertions(+), 34 deletions(-) diff --git a/firestore/README.md b/firestore/README.md index 6edf0fd0..a4772ac3 100644 --- a/firestore/README.md +++ b/firestore/README.md @@ -48,6 +48,11 @@ service cloud.firestore { **Add Some** from the overflow menu to add some new entries. +### Run the App Web + +In order to display images without a CORS exception, use the --web-renderer html flag: +`flutter run -d chrome --web-renderer html` + ### Result diff --git a/firestore/android/build.gradle b/firestore/android/build.gradle index 4256f917..0a2d6a10 100644 --- a/firestore/android/build.gradle +++ b/firestore/android/build.gradle @@ -26,6 +26,6 @@ subprojects { project.evaluationDependsOn(':app') } -task clean(type: Delete) { +tasks.register("clean", Delete) { delete rootProject.buildDir } diff --git a/firestore/android/gradle/wrapper/gradle-wrapper.properties b/firestore/android/gradle/wrapper/gradle-wrapper.properties index bc6a58af..cfe88f69 100644 --- a/firestore/android/gradle/wrapper/gradle-wrapper.properties +++ b/firestore/android/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.1-all.zip diff --git a/firestore/lib/src/data/restaurant_provider.dart b/firestore/lib/src/data/restaurant_provider.dart index 9fc0f8d0..ad7ac3b3 100644 --- a/firestore/lib/src/data/restaurant_provider.dart +++ b/firestore/lib/src/data/restaurant_provider.dart @@ -18,7 +18,7 @@ import 'dart:async'; import 'package:cloud_firestore/cloud_firestore.dart'; -import '../model/filter.dart'; +import '../model/filter.dart' as modelFilter; import '../model/restaurant.dart'; import '../model/review.dart'; @@ -29,7 +29,7 @@ abstract class RestaurantProvider { {required String restaurantId, required Review review}); void addRestaurantsBatch(List restaurants); void loadAllRestaurants(); - void loadFilteredRestaurants(Filter filter); + void loadFilteredRestaurants(modelFilter.Filter filter); Future getRestaurantById(String restaurantId); void dispose(); } @@ -116,7 +116,7 @@ class FirestoreRestaurantProvider implements RestaurantProvider { } @override - void loadFilteredRestaurants(Filter filter) { + void loadFilteredRestaurants(modelFilter.Filter filter) { Query collection = FirebaseFirestore.instance.collection('restaurants'); if (filter.category != null) { collection = collection.where('category', isEqualTo: filter.category); diff --git a/firestore/pubspec.lock b/firestore/pubspec.lock index ed78b8f5..c47480e9 100644 --- a/firestore/pubspec.lock +++ b/firestore/pubspec.lock @@ -5,10 +5,10 @@ packages: dependency: transitive description: name: _flutterfire_internals - sha256: "2f428053492f92303e42c9afa8e3a78ad1886760e7b594e2b5a6b6ee47376360" + sha256: "1a5e13736d59235ce0139621b4bbe29bc89839e202409081bc667eb3cd20674c" url: "https://pub.dev" source: hosted - version: "1.0.2" + version: "1.3.5" async: dependency: transitive description: @@ -45,26 +45,26 @@ packages: dependency: "direct main" description: name: cloud_firestore - sha256: "9194bf1845ee073bea64ec94e72c9dcf5d15f755e96496d8ccfee9def38b666f" + sha256: "0ff0baec167e308df192398dbd81ec13c1799635885c6aa6ed9ab8b5ed61f52c" url: "https://pub.dev" source: hosted - version: "3.5.1" + version: "4.9.1" cloud_firestore_platform_interface: dependency: transitive description: name: cloud_firestore_platform_interface - sha256: d023142c18c28b2610c23c196e829c96976569cc2aa2f8e45328ae8a64c428d1 + sha256: "5749b81aea93afdce220e02d34369162010d210011054ac494b2c38c4e9ebeb7" url: "https://pub.dev" source: hosted - version: "5.7.7" + version: "5.16.0" cloud_firestore_web: dependency: transitive description: name: cloud_firestore_web - sha256: "3d7d4fa8c1dc5a1f7cb33985ae0ab9924d33d76d4959fe26aed84b7d282887e3" + sha256: fef99ad0599e983092adb1bb01f14a596dba601a7a8efaaffd7b2721d64e2c51 url: "https://pub.dev" source: hosted - version: "2.8.10" + version: "3.7.0" collection: dependency: transitive description: @@ -93,34 +93,34 @@ packages: dependency: "direct main" description: name: firebase_auth - sha256: ca3034d35d6ca894487ec80aa1162a135fef7c5d0abef8154789cbeea3a6deaf + sha256: "6d9be853426ab686d68076b8007ac29b2c31e7d549444a45b5c3fe1abc249fb0" url: "https://pub.dev" source: hosted - version: "3.11.2" + version: "4.9.0" firebase_auth_platform_interface: dependency: transitive description: name: firebase_auth_platform_interface - sha256: ab20ecbc411726e139250a49fa03fe1ae0105fd990c5330b2a148ec08dfb140b + sha256: "2946cfdc17f925fa9771dd0ba3ce9dd2d019100a8685d0557c161f7786ea9b14" url: "https://pub.dev" source: hosted - version: "6.10.1" + version: "6.18.0" firebase_auth_web: dependency: transitive description: name: firebase_auth_web - sha256: bbe4f4fffcc378ca05c3d8ff33853be86dd27d0fafc85a953acaf5190531b6f9 + sha256: d8972d754702a3f4881184706b8056e2837d0dae91613a43b988c960b8e0d988 url: "https://pub.dev" source: hosted - version: "4.6.1" + version: "5.8.0" firebase_core: dependency: "direct main" description: name: firebase_core - sha256: "4f1d7c13a909e82ff026679c9b8493cdeb35a9c76bc46c42bf9e2240c9e57e80" + sha256: c78132175edda4bc532a71e01a32964e4b4fcf53de7853a422d96dac3725f389 url: "https://pub.dev" source: hosted - version: "1.24.0" + version: "2.15.1" firebase_core_platform_interface: dependency: transitive description: @@ -133,10 +133,10 @@ packages: dependency: transitive description: name: firebase_core_web - sha256: "839f1b48032a61962792cea1225fae030d4f27163867f181d6d2072dd40acbee" + sha256: "4cf4d2161530332ddc3c562f19823fb897ff37a9a774090d28df99f47370e973" url: "https://pub.dev" source: hosted - version: "1.7.3" + version: "2.7.0" flutter: dependency: "direct main" description: flutter @@ -160,14 +160,6 @@ packages: url: "https://pub.dev" source: hosted version: "4.0.2" - intl: - dependency: transitive - description: - name: intl - sha256: "910f85bce16fb5c6f614e117efa303e85a1731bb0081edf3604a2ae6e9a3cc91" - url: "https://pub.dev" - source: hosted - version: "0.17.0" js: dependency: transitive description: diff --git a/firestore/pubspec.yaml b/firestore/pubspec.yaml index 89f32d45..59290665 100644 --- a/firestore/pubspec.yaml +++ b/firestore/pubspec.yaml @@ -11,9 +11,9 @@ dependencies: flutter: sdk: flutter cupertino_icons: ^1.0.2 - firebase_core: ^1.15.0 - firebase_auth: ^3.3.15 - cloud_firestore: ^3.1.13 + firebase_core: ^2.15.1 + firebase_auth: ^4.9.0 + cloud_firestore: ^4.9.1 dev_dependencies: pedantic: ^1.9.0 diff --git a/firestore/windows/flutter/generated_plugin_registrant.cc b/firestore/windows/flutter/generated_plugin_registrant.cc index 8b6d4680..1a82e7d0 100644 --- a/firestore/windows/flutter/generated_plugin_registrant.cc +++ b/firestore/windows/flutter/generated_plugin_registrant.cc @@ -6,6 +6,9 @@ #include "generated_plugin_registrant.h" +#include void RegisterPlugins(flutter::PluginRegistry* registry) { + FirebaseCorePluginCApiRegisterWithRegistrar( + registry->GetRegistrarForPlugin("FirebaseCorePluginCApi")); } diff --git a/firestore/windows/flutter/generated_plugins.cmake b/firestore/windows/flutter/generated_plugins.cmake index b93c4c30..fa8a39ba 100644 --- a/firestore/windows/flutter/generated_plugins.cmake +++ b/firestore/windows/flutter/generated_plugins.cmake @@ -3,6 +3,7 @@ # list(APPEND FLUTTER_PLUGIN_LIST + firebase_core ) list(APPEND FLUTTER_FFI_PLUGIN_LIST From 576ac4bb99bef490fdc0e7d8b67948581c7eed61 Mon Sep 17 00:00:00 2001 From: Chris Thompson Date: Wed, 13 Sep 2023 18:19:36 -0700 Subject: [PATCH 2/4] Update gradle versions --- firestore/android/build.gradle | 2 +- firestore/android/gradle/wrapper/gradle-wrapper.properties | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/firestore/android/build.gradle b/firestore/android/build.gradle index 0a2d6a10..556bb5c0 100644 --- a/firestore/android/build.gradle +++ b/firestore/android/build.gradle @@ -6,7 +6,7 @@ buildscript { } dependencies { - classpath 'com.android.tools.build:gradle:4.1.0' + classpath 'com.android.tools.build:gradle:7.4.1' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } diff --git a/firestore/android/gradle/wrapper/gradle-wrapper.properties b/firestore/android/gradle/wrapper/gradle-wrapper.properties index cfe88f69..6b665338 100644 --- a/firestore/android/gradle/wrapper/gradle-wrapper.properties +++ b/firestore/android/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip From 2f20d7ecb9ca7975935bff71a27ab6c9586e46f2 Mon Sep 17 00:00:00 2001 From: Chris Thompson Date: Thu, 7 Mar 2024 01:18:42 -0800 Subject: [PATCH 3/4] Stuff --- firestore/README.md | 2 + firestore/lib/firebase_options.dart | 60 ++--------------------------- 2 files changed, 5 insertions(+), 57 deletions(-) diff --git a/firestore/README.md b/firestore/README.md index a4772ac3..fe6b2f7b 100644 --- a/firestore/README.md +++ b/firestore/README.md @@ -50,6 +50,8 @@ service cloud.firestore { ### Run the App Web +Don't forget to run `flutterfire configure` to set up your app's FirebaseOptions + In order to display images without a CORS exception, use the --web-renderer html flag: `flutter run -d chrome --web-renderer html` diff --git a/firestore/lib/firebase_options.dart b/firestore/lib/firebase_options.dart index f5513a13..25918c07 100644 --- a/firestore/lib/firebase_options.dart +++ b/firestore/lib/firebase_options.dart @@ -1,63 +1,9 @@ -// File generated by FlutterFire CLI. -// ignore_for_file: lines_longer_than_80_chars, avoid_classes_with_only_static_members import 'package:firebase_core/firebase_core.dart' show FirebaseOptions; -import 'package:flutter/foundation.dart' - show defaultTargetPlatform, kIsWeb, TargetPlatform; -/// Default [FirebaseOptions] for use with your Firebase apps. -/// -/// Example: -/// ```dart -/// import 'firebase_options.dart'; -/// // ... -/// await Firebase.initializeApp( -/// options: DefaultFirebaseOptions.currentPlatform, -/// ); -/// ``` +/// Run 'flutterfire configure' to generate platform-specific FirebaseOptions. class DefaultFirebaseOptions { static FirebaseOptions get currentPlatform { - if (kIsWeb) { - return web; - } - switch (defaultTargetPlatform) { - case TargetPlatform.android: - throw UnsupportedError( - 'DefaultFirebaseOptions have not been configured for android - ' - 'you can reconfigure this by running the FlutterFire CLI again.', - ); - case TargetPlatform.iOS: - throw UnsupportedError( - 'DefaultFirebaseOptions have not been configured for ios - ' - 'you can reconfigure this by running the FlutterFire CLI again.', - ); - case TargetPlatform.macOS: - throw UnsupportedError( - 'DefaultFirebaseOptions have not been configured for macos - ' - 'you can reconfigure this by running the FlutterFire CLI again.', - ); - case TargetPlatform.windows: - throw UnsupportedError( - 'DefaultFirebaseOptions have not been configured for windows - ' - 'you can reconfigure this by running the FlutterFire CLI again.', - ); - case TargetPlatform.linux: - throw UnsupportedError( - 'DefaultFirebaseOptions have not been configured for linux - ' - 'you can reconfigure this by running the FlutterFire CLI again.', - ); - default: - throw UnsupportedError( - 'DefaultFirebaseOptions are not supported for this platform.', - ); - } + throw StateError( + "firebase_options.dart not generated. Did you run 'flutterfire configure'?"); } - - static const FirebaseOptions web = FirebaseOptions( - apiKey: 'AIzaSyC8VCwBMvvfKAqnXC5vxBvgEmEISz1N5XA', - appId: '1:905001072058:web:e25193a00a843ca7801983', - messagingSenderId: '905001072058', - projectId: 'ctflutterquickstart', - authDomain: 'ctflutterquickstart.firebaseapp.com', - storageBucket: 'ctflutterquickstart.appspot.com', - ); } From 3470f59e753a68a380169938ae9a59ac6199731e Mon Sep 17 00:00:00 2001 From: Chris Thompson Date: Thu, 7 Mar 2024 12:17:27 -0800 Subject: [PATCH 4/4] Lint --- firestore/lib/src/data/restaurant_provider.dart | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/firestore/lib/src/data/restaurant_provider.dart b/firestore/lib/src/data/restaurant_provider.dart index 5a5ea051..5a3d3388 100644 --- a/firestore/lib/src/data/restaurant_provider.dart +++ b/firestore/lib/src/data/restaurant_provider.dart @@ -18,7 +18,7 @@ import 'dart:async'; import 'package:cloud_firestore/cloud_firestore.dart' hide Filter; -import '../model/filter.dart' as modelFilter; +import '../model/filter.dart' as model_filter; import '../model/restaurant.dart'; import '../model/review.dart'; @@ -29,7 +29,7 @@ abstract class RestaurantProvider { {required String restaurantId, required Review review}); void addRestaurantsBatch(List restaurants); void loadAllRestaurants(); - void loadFilteredRestaurants(modelFilter.Filter filter); + void loadFilteredRestaurants(model_filter.Filter filter); Future getRestaurantById(String restaurantId); void dispose(); } @@ -115,7 +115,7 @@ class FirestoreRestaurantProvider implements RestaurantProvider { } @override - void loadFilteredRestaurants(modelFilter.Filter filter) { + void loadFilteredRestaurants(model_filter.Filter filter) { Query collection = FirebaseFirestore.instance.collection('restaurants'); if (filter.category != null) { collection = collection.where('category', isEqualTo: filter.category);