From cf89dc50af748436ee971b2193e26ddd66b8789c Mon Sep 17 00:00:00 2001 From: Ben White Date: Tue, 20 Jul 2021 14:22:02 -0500 Subject: [PATCH 01/18] using local paths --- .../cloud_firestore/cloud_firestore/pubspec.yaml | 12 ++++++++---- .../cloud_firestore_platform_interface/pubspec.yaml | 6 ++++-- .../cloud_firestore/cloud_firestore_web/pubspec.yaml | 12 ++++++++---- .../cloud_functions/cloud_functions/pubspec.yaml | 12 ++++++++---- .../cloud_functions_platform_interface/pubspec.yaml | 6 ++++-- .../cloud_functions/cloud_functions_web/pubspec.yaml | 12 ++++++++---- .../firebase_analytics/pubspec.yaml | 9 ++++++--- .../firebase_analytics_web/pubspec.yaml | 3 ++- packages/firebase_auth/firebase_auth/pubspec.yaml | 12 ++++++++---- .../firebase_auth_platform_interface/pubspec.yaml | 6 ++++-- .../firebase_auth/firebase_auth_web/pubspec.yaml | 9 ++++++--- packages/firebase_core/firebase_core/pubspec.yaml | 6 ++++-- .../firebase_core/firebase_core_web/pubspec.yaml | 3 ++- .../firebase_crashlytics/pubspec.yaml | 9 ++++++--- .../pubspec.yaml | 6 ++++-- .../firebase_messaging/pubspec.yaml | 12 ++++++++---- .../pubspec.yaml | 6 ++++-- .../firebase_messaging_web/pubspec.yaml | 9 ++++++--- .../firebase_performance/pubspec.yaml | 3 ++- 19 files changed, 102 insertions(+), 51 deletions(-) diff --git a/packages/cloud_firestore/cloud_firestore/pubspec.yaml b/packages/cloud_firestore/cloud_firestore/pubspec.yaml index 6db332303c65..c2fa2b5fb9b2 100755 --- a/packages/cloud_firestore/cloud_firestore/pubspec.yaml +++ b/packages/cloud_firestore/cloud_firestore/pubspec.yaml @@ -11,10 +11,14 @@ environment: flutter: ">=1.12.13+hotfix.5" dependencies: - cloud_firestore_platform_interface: ^5.3.0 - cloud_firestore_web: ^2.3.0 - firebase_core: ^1.4.0 - firebase_core_platform_interface: ^4.0.1 + cloud_firestore_platform_interface: + path: ../cloud_firestore_platform_interface + cloud_firestore_web: + path: ../cloud_firestore_web + firebase_core: + path: ../../firebase_core/firebase_core + firebase_core_platform_interface: + path: ../../firebase_core/firebase_core_platform_interface flutter: sdk: flutter meta: ^1.3.0 diff --git a/packages/cloud_firestore/cloud_firestore_platform_interface/pubspec.yaml b/packages/cloud_firestore/cloud_firestore_platform_interface/pubspec.yaml index 36603a888ae3..93029ec083ee 100644 --- a/packages/cloud_firestore/cloud_firestore_platform_interface/pubspec.yaml +++ b/packages/cloud_firestore/cloud_firestore_platform_interface/pubspec.yaml @@ -10,7 +10,8 @@ environment: dependencies: collection: ^1.15.0 - firebase_core: ^1.4.0 + firebase_core: + path: ../../firebase_core/firebase_core flutter: sdk: flutter meta: ^1.3.0 @@ -18,7 +19,8 @@ dependencies: dev_dependencies: - firebase_core_platform_interface: ^4.0.1 + firebase_core_platform_interface: + path: ../../firebase_core/firebase_core_platform_interface flutter_test: sdk: flutter mockito: ^5.0.0 diff --git a/packages/cloud_firestore/cloud_firestore_web/pubspec.yaml b/packages/cloud_firestore/cloud_firestore_web/pubspec.yaml index 1c4a8aea139a..d547361b24d4 100644 --- a/packages/cloud_firestore/cloud_firestore_web/pubspec.yaml +++ b/packages/cloud_firestore/cloud_firestore_web/pubspec.yaml @@ -10,9 +10,12 @@ environment: flutter: ">=1.12.13+hotfix.4" dependencies: - cloud_firestore_platform_interface: ^5.3.0 - firebase_core: ^1.4.0 - firebase_core_web: ^1.1.0 + cloud_firestore_platform_interface: + path: ../cloud_firestore_platform_interface + firebase_core: + path: ../../firebase_core/firebase_core + firebase_core_web: + path: ../../firebase_core/firebase_core_web flutter: sdk: flutter flutter_web_plugins: @@ -20,7 +23,8 @@ dependencies: js: ^0.6.3 dev_dependencies: - firebase_core_platform_interface: ^4.0.1 + firebase_core_platform_interface: + path: ../../firebase_core/firebase_core_platform_interface flutter_test: sdk: flutter mockito: ^5.0.0 diff --git a/packages/cloud_functions/cloud_functions/pubspec.yaml b/packages/cloud_functions/cloud_functions/pubspec.yaml index f9be27f2f233..29335f3626d2 100644 --- a/packages/cloud_functions/cloud_functions/pubspec.yaml +++ b/packages/cloud_functions/cloud_functions/pubspec.yaml @@ -9,10 +9,14 @@ environment: flutter: ">=1.12.13+hotfix.5" dependencies: - cloud_functions_platform_interface: ^5.0.8 - cloud_functions_web: ^4.0.10 - firebase_core: ^1.4.0 - firebase_core_platform_interface: ^4.0.1 + cloud_functions_platform_interface: + path: ../cloud_functions_platform_interface + cloud_functions_web: + path: ../cloud_functions_web + firebase_core: + path: ../../firebase_core/firebase_core + firebase_core_platform_interface: + path: ../../firebase_core/firebase_core_platform_interface flutter: sdk: flutter diff --git a/packages/cloud_functions/cloud_functions_platform_interface/pubspec.yaml b/packages/cloud_functions/cloud_functions_platform_interface/pubspec.yaml index 85ceaaa50003..36865b3cbd00 100644 --- a/packages/cloud_functions/cloud_functions_platform_interface/pubspec.yaml +++ b/packages/cloud_functions/cloud_functions_platform_interface/pubspec.yaml @@ -12,14 +12,16 @@ environment: flutter: ">=1.9.1+hotfix.5" dependencies: - firebase_core: ^1.4.0 + firebase_core: + path: ../../firebase_core/firebase_core flutter: sdk: flutter meta: ^1.3.0 plugin_platform_interface: ^2.0.0 dev_dependencies: - firebase_core_platform_interface: ^4.0.1 + firebase_core_platform_interface: + path: ../../firebase_core/firebase_core_platform_interface flutter_test: sdk: flutter mockito: ^5.0.0 diff --git a/packages/cloud_functions/cloud_functions_web/pubspec.yaml b/packages/cloud_functions/cloud_functions_web/pubspec.yaml index 66df06dc136a..039e2f331c3c 100644 --- a/packages/cloud_functions/cloud_functions_web/pubspec.yaml +++ b/packages/cloud_functions/cloud_functions_web/pubspec.yaml @@ -10,9 +10,12 @@ environment: flutter: ">=1.12.13+hotfix.4" dependencies: - cloud_functions_platform_interface: ^5.0.8 - firebase_core: ^1.4.0 - firebase_core_web: ^1.1.0 + cloud_functions_platform_interface: + path: ../cloud_functions_platform_interface + firebase_core: + path: ../../firebase_core/firebase_core + firebase_core_web: + path: ../../firebase_core/firebase_core_web flutter: sdk: flutter flutter_web_plugins: @@ -20,7 +23,8 @@ dependencies: js: ^0.6.3 dev_dependencies: - firebase_core_platform_interface: ^4.0.1 + firebase_core_platform_interface: + path: ../../firebase_core/firebase_core_platform_interface flutter_test: sdk: flutter mockito: ^5.0.0 diff --git a/packages/firebase_analytics/firebase_analytics/pubspec.yaml b/packages/firebase_analytics/firebase_analytics/pubspec.yaml index db35e0c9e531..90a9cdfeb87d 100755 --- a/packages/firebase_analytics/firebase_analytics/pubspec.yaml +++ b/packages/firebase_analytics/firebase_analytics/pubspec.yaml @@ -11,9 +11,12 @@ environment: flutter: '>=1.12.13+hotfix.5' dependencies: - firebase_analytics_platform_interface: ^2.0.1 - firebase_analytics_web: ^0.3.0+1 - firebase_core: ^1.4.0 + firebase_analytics_platform_interface: + path: ../firebase_analytics_platform_interface + firebase_analytics_web: + path: ../firebase_analytics_web + firebase_core: + path: ../../firebase_core/firebase_core flutter: sdk: flutter meta: ^1.3.0 diff --git a/packages/firebase_analytics/firebase_analytics_web/pubspec.yaml b/packages/firebase_analytics/firebase_analytics_web/pubspec.yaml index a2fa2abcc435..77a7c02f3824 100644 --- a/packages/firebase_analytics/firebase_analytics_web/pubspec.yaml +++ b/packages/firebase_analytics/firebase_analytics_web/pubspec.yaml @@ -10,7 +10,8 @@ environment: dependencies: firebase: ^9.0.1 - firebase_analytics_platform_interface: ^2.0.1 + firebase_analytics_platform_interface: + path: ../firebase_analytics_platform_interface flutter: sdk: flutter flutter_web_plugins: diff --git a/packages/firebase_auth/firebase_auth/pubspec.yaml b/packages/firebase_auth/firebase_auth/pubspec.yaml index 249392893d7a..0aaf16a155ea 100755 --- a/packages/firebase_auth/firebase_auth/pubspec.yaml +++ b/packages/firebase_auth/firebase_auth/pubspec.yaml @@ -11,10 +11,14 @@ environment: flutter: ">=1.12.13+hotfix.5" dependencies: - firebase_auth_platform_interface: ^6.0.0 - firebase_auth_web: ^3.0.0 - firebase_core: ^1.4.0 - firebase_core_platform_interface: ^4.0.1 + firebase_auth_platform_interface: + path: ../firebase_auth_platform_interface + firebase_auth_web: + path: ../firebase_auth_web + firebase_core: + path: ../../firebase_core/firebase_core + firebase_core_platform_interface: + path: ../../firebase_core/firebase_core_platform_interface flutter: sdk: flutter meta: ^1.3.0 diff --git a/packages/firebase_auth/firebase_auth_platform_interface/pubspec.yaml b/packages/firebase_auth/firebase_auth_platform_interface/pubspec.yaml index 4b7e9c3e739b..8daee9667816 100644 --- a/packages/firebase_auth/firebase_auth_platform_interface/pubspec.yaml +++ b/packages/firebase_auth/firebase_auth_platform_interface/pubspec.yaml @@ -11,14 +11,16 @@ environment: flutter: ">=1.9.1+hotfix.5" dependencies: - firebase_core: ^1.4.0 + firebase_core: + path: ../../firebase_core/firebase_core flutter: sdk: flutter meta: ^1.3.0 plugin_platform_interface: ^2.0.0 dev_dependencies: - firebase_core_platform_interface: ^4.0.1 + firebase_core_platform_interface: + path: ../../firebase_core/firebase_core_platform_interface flutter_test: sdk: flutter mockito: ^5.0.0 diff --git a/packages/firebase_auth/firebase_auth_web/pubspec.yaml b/packages/firebase_auth/firebase_auth_web/pubspec.yaml index c057bb87c643..66e420eb68a9 100644 --- a/packages/firebase_auth/firebase_auth_web/pubspec.yaml +++ b/packages/firebase_auth/firebase_auth_web/pubspec.yaml @@ -9,9 +9,12 @@ environment: flutter: ">=1.12.13+hotfix.4" dependencies: - firebase_auth_platform_interface: ^6.0.0 - firebase_core: ^1.4.0 - firebase_core_web: ^1.1.0 + firebase_auth_platform_interface: + path: ../../firebase_auth/firebase_auth_platform_interface + firebase_core: + path: ../../firebase_core/firebase_core + firebase_core_web: + path: ../../firebase_core/firebase_core_web flutter: sdk: flutter flutter_web_plugins: diff --git a/packages/firebase_core/firebase_core/pubspec.yaml b/packages/firebase_core/firebase_core/pubspec.yaml index 8545bd1df487..a6769d19d541 100644 --- a/packages/firebase_core/firebase_core/pubspec.yaml +++ b/packages/firebase_core/firebase_core/pubspec.yaml @@ -10,8 +10,10 @@ environment: flutter: ">=1.12.13+hotfix.5" dependencies: - firebase_core_platform_interface: ^4.0.1 - firebase_core_web: ^1.1.0 + firebase_core_platform_interface: + path: ../firebase_core_platform_interface + firebase_core_web: + path: ../firebase_core_web flutter: sdk: flutter meta: ^1.3.0 diff --git a/packages/firebase_core/firebase_core_web/pubspec.yaml b/packages/firebase_core/firebase_core_web/pubspec.yaml index a09f7522394a..c49a09886de6 100644 --- a/packages/firebase_core/firebase_core_web/pubspec.yaml +++ b/packages/firebase_core/firebase_core_web/pubspec.yaml @@ -9,7 +9,8 @@ environment: flutter: ">=1.12.13+hotfix.5" dependencies: - firebase_core_platform_interface: ^4.0.1 + firebase_core_platform_interface: + path: ../firebase_core_platform_interface flutter: sdk: flutter flutter_web_plugins: diff --git a/packages/firebase_crashlytics/firebase_crashlytics/pubspec.yaml b/packages/firebase_crashlytics/firebase_crashlytics/pubspec.yaml index 626ec1087ca5..0e90282d8843 100644 --- a/packages/firebase_crashlytics/firebase_crashlytics/pubspec.yaml +++ b/packages/firebase_crashlytics/firebase_crashlytics/pubspec.yaml @@ -11,9 +11,12 @@ environment: flutter: ">=1.12.13+hotfix.5" dependencies: - firebase_core: ^1.4.0 - firebase_core_platform_interface: ^4.0.1 - firebase_crashlytics_platform_interface: ^3.1.0 + firebase_core: + path: ../../firebase_core/firebase_core + firebase_core_platform_interface: + path: ../../firebase_core/firebase_core_platform_interface + firebase_crashlytics_platform_interface: + path: ../firebase_crashlytics_platform_interface flutter: sdk: flutter stack_trace: ^1.10.0 diff --git a/packages/firebase_crashlytics/firebase_crashlytics_platform_interface/pubspec.yaml b/packages/firebase_crashlytics/firebase_crashlytics_platform_interface/pubspec.yaml index f9b571e0c02d..17fa0556f36c 100644 --- a/packages/firebase_crashlytics/firebase_crashlytics_platform_interface/pubspec.yaml +++ b/packages/firebase_crashlytics/firebase_crashlytics_platform_interface/pubspec.yaml @@ -10,14 +10,16 @@ environment: dependencies: collection: ^1.15.0 - firebase_core: ^1.4.0 + firebase_core: + path: ../../firebase_core/firebase_core flutter: sdk: flutter meta: ^1.3.0 plugin_platform_interface: ^2.0.0 dev_dependencies: - firebase_core_platform_interface: ^4.0.1 + firebase_core_platform_interface: + path: ../../firebase_core/firebase_core_platform_interface flutter_test: sdk: flutter mockito: ^5.0.0 diff --git a/packages/firebase_messaging/firebase_messaging/pubspec.yaml b/packages/firebase_messaging/firebase_messaging/pubspec.yaml index d28cfd9ad5d6..1018a8f618fe 100644 --- a/packages/firebase_messaging/firebase_messaging/pubspec.yaml +++ b/packages/firebase_messaging/firebase_messaging/pubspec.yaml @@ -10,10 +10,14 @@ environment: flutter: ">=1.12.13+hotfix.5" dependencies: - firebase_core: ^1.4.0 - firebase_core_platform_interface: ^4.0.1 - firebase_messaging_platform_interface: ^3.0.3 - firebase_messaging_web: ^2.0.3 + firebase_core: + path: ../../firebase_core/firebase_core + firebase_core_platform_interface: + path: ../../firebase_core/firebase_core_platform_interface + firebase_messaging_platform_interface: + path: ../firebase_messaging_platform_interface + firebase_messaging_web: + path: ../firebase_messaging_web flutter: sdk: flutter meta: ^1.3.0 diff --git a/packages/firebase_messaging/firebase_messaging_platform_interface/pubspec.yaml b/packages/firebase_messaging/firebase_messaging_platform_interface/pubspec.yaml index 8d7745245bd2..30f84c99ec99 100644 --- a/packages/firebase_messaging/firebase_messaging_platform_interface/pubspec.yaml +++ b/packages/firebase_messaging/firebase_messaging_platform_interface/pubspec.yaml @@ -9,14 +9,16 @@ environment: flutter: ">=1.9.1+hotfix.5" dependencies: - firebase_core: ^1.4.0 + firebase_core: + path: ../../firebase_core/firebase_core flutter: sdk: flutter meta: ^1.3.0 plugin_platform_interface: ^2.0.0 dev_dependencies: - firebase_core_platform_interface: ^4.0.1 + firebase_core_platform_interface: + path: ../../firebase_core/firebase_core_platform_interface flutter_test: sdk: flutter mockito: ^5.0.0 diff --git a/packages/firebase_messaging/firebase_messaging_web/pubspec.yaml b/packages/firebase_messaging/firebase_messaging_web/pubspec.yaml index 39739133bfed..f8b09d4b655c 100644 --- a/packages/firebase_messaging/firebase_messaging_web/pubspec.yaml +++ b/packages/firebase_messaging/firebase_messaging_web/pubspec.yaml @@ -9,9 +9,12 @@ environment: flutter: ">=1.12.13+hotfix.4" dependencies: - firebase_core: ^1.4.0 - firebase_core_web: ^1.1.0 - firebase_messaging_platform_interface: ^3.0.3 + firebase_core: + path: ../../firebase_core/firebase_core + firebase_core_web: + path: ../../firebase_core/firebase_core_web + firebase_messaging_platform_interface: + path: ../firebase_messaging_platform_interface flutter: sdk: flutter flutter_web_plugins: diff --git a/packages/firebase_performance/firebase_performance/pubspec.yaml b/packages/firebase_performance/firebase_performance/pubspec.yaml index 3e5c6e086ab9..f158b447ded6 100644 --- a/packages/firebase_performance/firebase_performance/pubspec.yaml +++ b/packages/firebase_performance/firebase_performance/pubspec.yaml @@ -12,7 +12,8 @@ environment: flutter: ">=1.12.13+hotfix.5" dependencies: - firebase_core: ^1.4.0 + firebase_core: + path: ../../firebase_core/firebase_core flutter: sdk: flutter From eab79b4d1567c7232e0bf3efe387f2a94aa45ce8 Mon Sep 17 00:00:00 2001 From: Ben White Date: Thu, 22 Jul 2021 13:06:20 -0500 Subject: [PATCH 02/18] checking in stuff to run a custom firebase-android-sdk --- .../cloud_firestore/android/build.gradle | 20 ++++++++++++++++++- .../FlutterFirebaseFirestoreMessageCodec.java | 2 ++ .../FlutterFirebaseFirestorePlugin.java | 2 +- .../DocumentSnapshotsStreamHandler.java | 9 +++++++++ .../QuerySnapshotsStreamHandler.java | 9 +++++++++ 5 files changed, 40 insertions(+), 2 deletions(-) diff --git a/packages/cloud_firestore/cloud_firestore/android/build.gradle b/packages/cloud_firestore/cloud_firestore/android/build.gradle index e09ea7beb798..abd701f17b5e 100755 --- a/packages/cloud_firestore/cloud_firestore/android/build.gradle +++ b/packages/cloud_firestore/cloud_firestore/android/build.gradle @@ -1,8 +1,22 @@ group 'io.flutter.plugins.firebase.cloudfirestore' version '1.0-SNAPSHOT' +repositories { + mavenLocal() + flatDir{ + dirs '/Users/bwhite/.M2/repository' + } + maven{ + url '/Users/bwhite/.M2/repository' + } +} + buildscript { repositories { + maven{ + url '/Users/bwhite/.M2/repository' + } + mavenLocal() google() mavenCentral() } @@ -14,6 +28,10 @@ buildscript { allprojects { repositories { + maven{ + url '/Users/bwhite/.M2/repository' + } + mavenLocal() google() mavenCentral() } @@ -50,7 +68,7 @@ android { dependencies { api firebaseCoreProject implementation platform("com.google.firebase:firebase-bom:${getRootProjectExtOrCoreProperty("FirebaseSDKVersion", firebaseCoreProject)}") - implementation 'com.google.firebase:firebase-firestore' + implementation 'com.google.firebase:firebase-firestore:99.0.2-SNAPSHOT' implementation 'androidx.annotation:annotation:1.1.0' } } diff --git a/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/FlutterFirebaseFirestoreMessageCodec.java b/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/FlutterFirebaseFirestoreMessageCodec.java index 1b2b2d1641e6..8ed0e12e3669 100644 --- a/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/FlutterFirebaseFirestoreMessageCodec.java +++ b/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/FlutterFirebaseFirestoreMessageCodec.java @@ -272,6 +272,8 @@ private FirebaseFirestore readFirestoreInstance(ByteBuffer buffer) { firestore.setFirestoreSettings(settings); + firestore.setLoggingEnabled(true); + FlutterFirebaseFirestorePlugin.setCachedFirebaseFirestoreInstanceForKey(firestore, appName); return firestore; } diff --git a/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/FlutterFirebaseFirestorePlugin.java b/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/FlutterFirebaseFirestorePlugin.java index 0fc1585505f4..ab00103a2c42 100644 --- a/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/FlutterFirebaseFirestorePlugin.java +++ b/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/FlutterFirebaseFirestorePlugin.java @@ -383,7 +383,7 @@ private Task waitForPendingWrites(Map arguments) { () -> { FirebaseFirestore firestore = (FirebaseFirestore) Objects.requireNonNull(arguments.get("firestore")); - return Tasks.await(firestore.waitForPendingWrites()); + return Tasks.await(firestore.get()); }); } diff --git a/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/streamhandler/DocumentSnapshotsStreamHandler.java b/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/streamhandler/DocumentSnapshotsStreamHandler.java index fb9fe8cbdafb..6f8045132750 100644 --- a/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/streamhandler/DocumentSnapshotsStreamHandler.java +++ b/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/streamhandler/DocumentSnapshotsStreamHandler.java @@ -2,6 +2,7 @@ import static io.flutter.plugins.firebase.firestore.FlutterFirebaseFirestorePlugin.DEFAULT_ERROR_CODE; +import android.util.Log; import com.google.firebase.firestore.DocumentReference; import com.google.firebase.firestore.ListenerRegistration; import com.google.firebase.firestore.MetadataChanges; @@ -28,6 +29,10 @@ public void onListen(Object arguments, EventSink events) { DocumentReference documentReference = (DocumentReference) Objects.requireNonNull(argumentsMap.get("reference")); + Log.w( + "DocumentSnapshotsStreamHandler", + "Entered OnListen"); + listenerRegistration = documentReference.addSnapshotListener( metadataChanges, @@ -37,6 +42,10 @@ public void onListen(Object arguments, EventSink events) { events.error(DEFAULT_ERROR_CODE, exception.getMessage(), exceptionDetails); events.endOfStream(); + Log.e( + "DocumentSnapshotsStreamHandler", + "OnListen exception: " + exception.getMessage()); + onCancel(null); } else { events.success(documentSnapshot); diff --git a/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/streamhandler/QuerySnapshotsStreamHandler.java b/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/streamhandler/QuerySnapshotsStreamHandler.java index f17af4762082..393cfd51b8e4 100644 --- a/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/streamhandler/QuerySnapshotsStreamHandler.java +++ b/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/streamhandler/QuerySnapshotsStreamHandler.java @@ -10,6 +10,7 @@ import io.flutter.plugins.firebase.firestore.utils.ExceptionConverter; import java.util.Map; import java.util.Objects; +import android.util.Log; public class QuerySnapshotsStreamHandler implements StreamHandler { @@ -32,6 +33,10 @@ public void onListen(Object arguments, EventSink events) { "An error occurred while parsing query arguments, see native logs for more information. Please report this issue."); } + Log.w( + "QuerySnapshotsStreamHandler", + "Entered OnListen"); + listenerRegistration = query.addSnapshotListener( metadataChanges, @@ -41,6 +46,10 @@ public void onListen(Object arguments, EventSink events) { events.error(DEFAULT_ERROR_CODE, exception.getMessage(), exceptionDetails); events.endOfStream(); + Log.e( + "QuerySnapshotsStreamHandler", + "OnListen exception: " + exception.getMessage()); + onCancel(null); } else { events.success(querySnapshot); From 14e98112f551e7bdb0fd012ccb1ac9ead28235ff Mon Sep 17 00:00:00 2001 From: Ben White Date: Wed, 24 Nov 2021 09:57:29 -0600 Subject: [PATCH 03/18] adding paths --- .../cloud_firestore/android/build.gradle | 12 +++++++++--- .../firestore/FlutterFirebaseFirestorePlugin.java | 2 +- .../pubspec.yaml | 6 ++++-- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/packages/cloud_firestore/cloud_firestore/android/build.gradle b/packages/cloud_firestore/cloud_firestore/android/build.gradle index a8d5f3c64a02..427acbee5dc1 100755 --- a/packages/cloud_firestore/cloud_firestore/android/build.gradle +++ b/packages/cloud_firestore/cloud_firestore/android/build.gradle @@ -13,10 +13,13 @@ repositories { buildscript { repositories { + mavenLocal() + flatDir{ + dirs '/Users/bwhite/.M2/repository' + } maven{ url '/Users/bwhite/.M2/repository' } - mavenLocal() google() mavenCentral() } @@ -28,10 +31,13 @@ buildscript { allprojects { repositories { + mavenLocal() + flatDir{ + dirs '/Users/bwhite/.M2/repository' + } maven{ url '/Users/bwhite/.M2/repository' } - mavenLocal() google() mavenCentral() } @@ -68,7 +74,7 @@ android { dependencies { api firebaseCoreProject implementation platform("com.google.firebase:firebase-bom:${getRootProjectExtOrCoreProperty("FirebaseSDKVersion", firebaseCoreProject)}") - implementation 'com.google.firebase:firebase-firestore' + implementation 'com.google.firebase:firebase-firestore:99.0.2-SNAPSHOT' implementation 'androidx.annotation:annotation:1.2.0' } } diff --git a/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/FlutterFirebaseFirestorePlugin.java b/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/FlutterFirebaseFirestorePlugin.java index 8d353afd4dcb..b94ccacf6c2f 100644 --- a/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/FlutterFirebaseFirestorePlugin.java +++ b/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/FlutterFirebaseFirestorePlugin.java @@ -371,7 +371,7 @@ private Task waitForPendingWrites(Map arguments) { () -> { FirebaseFirestore firestore = (FirebaseFirestore) Objects.requireNonNull(arguments.get("firestore")); - return Tasks.await(firestore.get()); + return Tasks.await(firestore.waitForPendingWrites()); }); } diff --git a/packages/firebase_analytics/firebase_analytics_platform_interface/pubspec.yaml b/packages/firebase_analytics/firebase_analytics_platform_interface/pubspec.yaml index 2248e5462d0d..8f5d95815a88 100644 --- a/packages/firebase_analytics/firebase_analytics_platform_interface/pubspec.yaml +++ b/packages/firebase_analytics/firebase_analytics_platform_interface/pubspec.yaml @@ -9,13 +9,15 @@ environment: flutter: '>=1.9.1+hotfix.5' dependencies: - firebase_core: ^1.10.0 + firebase_core: + path: ../../firebase_core/firebase_core flutter: sdk: flutter meta: ^1.3.0 plugin_platform_interface: ^2.0.0 dev_dependencies: - firebase_core_platform_interface: ^4.1.0 + firebase_core_platform_interface: + path: ../../firebase_core/firebase_core_platform_interface flutter_test: sdk: flutter From fff0d7978cd4e3ddfcf06926a9739c8ebf89bb85 Mon Sep 17 00:00:00 2001 From: Ben White Date: Wed, 11 May 2022 13:43:55 -0500 Subject: [PATCH 04/18] old files --- .../cloud_firestore/android/build.gradle | 3 ++- .../FlutterFirebaseFirestorePlugin.java | 5 +++++ .../TransactionStreamHandler.java | 20 +++++++++++++++++++ .../cloud_firestore/lib/src/transaction.dart | 7 +++++++ .../method_channel_firestore.dart | 20 ++++++++++++++++++- .../method_channel_transaction.dart | 5 +++++ .../firebase_analytics_web/pubspec.yaml | 9 ++++++--- .../firebase_app_check/pubspec.yaml | 6 ++++-- .../firebase_core_web/pubspec.yaml | 3 ++- .../firebase_performance/pubspec.yaml | 9 ++++++--- .../pubspec.yaml | 3 ++- .../firebase_performance_web/pubspec.yaml | 9 ++++++--- 12 files changed, 84 insertions(+), 15 deletions(-) diff --git a/packages/cloud_firestore/cloud_firestore/android/build.gradle b/packages/cloud_firestore/cloud_firestore/android/build.gradle index 427acbee5dc1..543a94ebf3ad 100755 --- a/packages/cloud_firestore/cloud_firestore/android/build.gradle +++ b/packages/cloud_firestore/cloud_firestore/android/build.gradle @@ -74,7 +74,8 @@ android { dependencies { api firebaseCoreProject implementation platform("com.google.firebase:firebase-bom:${getRootProjectExtOrCoreProperty("FirebaseSDKVersion", firebaseCoreProject)}") - implementation 'com.google.firebase:firebase-firestore:99.0.2-SNAPSHOT' +// implementation 'com.google.firebase:firebase-firestore' + implementation 'com.google.firebase:firebase-firestore:99.0.14-SNAPSHOT' implementation 'androidx.annotation:annotation:1.2.0' } } diff --git a/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/FlutterFirebaseFirestorePlugin.java b/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/FlutterFirebaseFirestorePlugin.java index 8e7fb0cced3b..ce000b994466 100644 --- a/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/FlutterFirebaseFirestorePlugin.java +++ b/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/FlutterFirebaseFirestorePlugin.java @@ -4,6 +4,7 @@ package io.flutter.plugins.firebase.firestore; +import android.util.Log; import android.app.Activity; import androidx.annotation.NonNull; import com.google.android.gms.tasks.Task; @@ -179,6 +180,8 @@ private Task transactionGet(Map arguments) { private void transactionStoreResult(Map arguments) { String transactionId = (String) Objects.requireNonNull(arguments.get("transactionId")); + + Log.w("transactionStoreResult", "transactionId: " + transactionId); @SuppressWarnings("unchecked") Map result = (Map) Objects.requireNonNull(arguments.get("result")); @@ -391,6 +394,8 @@ public void onMethodCall(MethodCall call, @NonNull final MethodChannel.Result re break; case "Transaction#create": final String transactionId = UUID.randomUUID().toString().toLowerCase(Locale.US); + + Log.w("FlutterFirebaseFirestorePlugin", "Transaction#create calling TransactionStreamHandler transactionId: " + transactionId); final TransactionStreamHandler handler = new TransactionStreamHandler( transaction -> transactions.put(transactionId, transaction)); diff --git a/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/streamhandler/TransactionStreamHandler.java b/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/streamhandler/TransactionStreamHandler.java index e9b45acfab6f..f78f2cb4985e 100644 --- a/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/streamhandler/TransactionStreamHandler.java +++ b/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/streamhandler/TransactionStreamHandler.java @@ -1,5 +1,6 @@ package io.flutter.plugins.firebase.firestore.streamhandler; +import android.util.Log; import android.os.Handler; import android.os.Looper; import androidx.annotation.Nullable; @@ -31,6 +32,7 @@ public interface OnTransactionStartedListener { final OnTransactionStartedListener onTransactionStartedListener; public TransactionStreamHandler(OnTransactionStartedListener onTransactionStartedListener) { + Log.w("TransactionStreamHandler", "Created" + this.toString()); this.onTransactionStartedListener = onTransactionStartedListener; } @@ -40,6 +42,8 @@ public TransactionStreamHandler(OnTransactionStartedListener onTransactionStarte @Override public void onListen(Object arguments, EventSink events) { + Log.w("TransactionStreamHandler", "onListen " + this.toString()); + @SuppressWarnings("unchecked") Map argumentsMap = (Map) arguments; @@ -57,9 +61,12 @@ public void onListen(Object arguments, EventSink events) { timeout = 5000L; } + Log.w("TransactionStreamHandler", "timeout: " + timeout.toString()); + firestore .runTransaction( transaction -> { + Log.w("TransactionStreamHandler", "entered firestore.runTransaction"); onTransactionStartedListener.onStarted(transaction); Map attemptMap = new HashMap<>(); @@ -68,6 +75,8 @@ public void onListen(Object arguments, EventSink events) { mainLooper.post(() -> events.success(attemptMap)); try { + Log.w("TransactionStreamHandler", "semaphore.tryAcquire"); + if (!semaphore.tryAcquire(timeout, TimeUnit.MILLISECONDS)) { return FlutterFirebaseFirestoreTransactionResult.failed( new FirebaseFirestoreException("timed out", Code.DEADLINE_EXCEEDED)); @@ -77,11 +86,17 @@ public void onListen(Object arguments, EventSink events) { new FirebaseFirestoreException("interrupted", Code.DEADLINE_EXCEEDED)); } + if (response.isEmpty()) { + Log.w("TransactionStreamHandler", "response.isEmpty"); return FlutterFirebaseFirestoreTransactionResult.complete(); } + Log.w("TransactionStreamHandler", "response.is not empty"); + final String resultType = (String) response.get("type"); + Log.w("TransactionStreamHandler", "resultType: " + resultType); + if ("ERROR".equalsIgnoreCase(resultType)) { return FlutterFirebaseFirestoreTransactionResult.complete(); } @@ -103,10 +118,13 @@ public void onListen(Object arguments, EventSink events) { transaction.delete(documentReference); break; case "UPDATE": + Log.w("TransactionStreamHandler", "UPDATE: " + documentReference.getPath()); transaction.update(documentReference, Objects.requireNonNull(data)); break; case "SET": { + Log.w("TransactionStreamHandler", "SET: " + documentReference.getPath()); + @SuppressWarnings("unchecked") Map options = (Map) Objects.requireNonNull(command.get("options")); @@ -156,11 +174,13 @@ public void onListen(Object arguments, EventSink events) { @Override public void onCancel(Object arguments) { + Log.w("TransactionStreamHandler", "onCancel semaphore.release"); semaphore.release(); } @Override public void receiveTransactionResponse(Map result) { + Log.w("TransactionStreamHandler", "receiveTransactionResponse semaphore.release"); response.putAll(result); semaphore.release(); } diff --git a/packages/cloud_firestore/cloud_firestore/lib/src/transaction.dart b/packages/cloud_firestore/cloud_firestore/lib/src/transaction.dart index 5e4d36aa8f0e..947dfb39fd7a 100644 --- a/packages/cloud_firestore/cloud_firestore/lib/src/transaction.dart +++ b/packages/cloud_firestore/cloud_firestore/lib/src/transaction.dart @@ -24,6 +24,7 @@ class Transaction { Future> get( DocumentReference documentReference, ) async { + print('transaction get path: ${documentReference.path}'); DocumentSnapshotPlatform documentSnapshotPlatform = await _delegate.get(documentReference.path); @@ -37,6 +38,8 @@ class Transaction { final withConverterDocRef = documentReference as _WithConverterDocumentReference; + print('transaction get returning'); + return _WithConverterDocumentSnapshot( snapshot, withConverterDocRef._fromFirestore, @@ -68,6 +71,8 @@ class Transaction { 'the document provided is from a different Firestore instance', ); + print('transaction update path: ${documentReference.path}'); + return Transaction._( _firestore, _delegate.update( @@ -99,6 +104,8 @@ class Transaction { firestoreData = withConverterDoc._toFirestore(data, options); } + print('transaction set path: ${documentReference.path}'); + return Transaction._( _firestore, _delegate.set( diff --git a/packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/method_channel/method_channel_firestore.dart b/packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/method_channel/method_channel_firestore.dart index 8935caff566a..97fbdc1f090c 100644 --- a/packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/method_channel/method_channel_firestore.dart +++ b/packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/method_channel/method_channel_firestore.dart @@ -18,8 +18,8 @@ import 'method_channel_document_reference.dart'; import 'method_channel_query.dart'; import 'method_channel_transaction.dart'; import 'method_channel_write_batch.dart'; -import 'utils/firestore_message_codec.dart'; import 'utils/exception.dart'; +import 'utils/firestore_message_codec.dart'; /// The entry point for accessing a Firestore. /// @@ -225,10 +225,13 @@ class MethodChannelFirebaseFirestore extends FirebaseFirestorePlatform { assert(timeout.inMilliseconds > 0, 'Transaction timeout must be more than 0 milliseconds'); + print( + 'method_channel_firestore.dart runTransaction calling Transaction#create'); final String? transactionId = await MethodChannelFirebaseFirestore.channel.invokeMethod( 'Transaction#create', ); + print('runTransaction transactionId: $transactionId'); StreamSubscription snapshotStream; @@ -247,6 +250,8 @@ class MethodChannelFirebaseFirestore extends FirebaseFirestorePlatform { ).listen( (event) async { if (event['error'] != null) { + print( + 'runTransaction receiveBroadcastStream error code: ${event['error']['code']} message: ${event['error']['message']}'); completer.completeError( FirebaseException( plugin: 'cloud_firestore', @@ -256,8 +261,12 @@ class MethodChannelFirebaseFirestore extends FirebaseFirestorePlatform { ); return; } else if (event['complete'] == true) { + print('runTransaction receiveBroadcastStream complete'); completer.complete(result); return; + } else { + print( + 'runTransaction receiveBroadcastStream else ... event: ${event.toString()}'); } final TransactionPlatform transaction = @@ -266,8 +275,14 @@ class MethodChannelFirebaseFirestore extends FirebaseFirestorePlatform { // If the transaction fails on Dart side, then forward the error // right away and only inform native side of the error. try { + print('runTransaction calling transactionHandler.'); result = await transactionHandler(transaction) as T; + print( + 'runTransaction transactionHandler returned result: ${result.toString()}'); } catch (error, stack) { + print( + 'runTransaction transactionHandler error: ${error.toString()} stack: ${stack.toString()}'); + // Signal native that a user error occurred, and finish the // transaction await MethodChannelFirebaseFirestore.channel @@ -285,6 +300,8 @@ class MethodChannelFirebaseFirestore extends FirebaseFirestorePlatform { return; } + print('runTransaction success'); + // Send the transaction commands to Dart. await MethodChannelFirebaseFirestore.channel .invokeMethod('Transaction#storeResult', { @@ -298,6 +315,7 @@ class MethodChannelFirebaseFirestore extends FirebaseFirestorePlatform { ); return completer.future.whenComplete(() { + print('runTransaction returning.'); snapshotStream.cancel(); }); } diff --git a/packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/method_channel/method_channel_transaction.dart b/packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/method_channel/method_channel_transaction.dart index 177df5a81ae3..bad23c6c1237 100644 --- a/packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/method_channel/method_channel_transaction.dart +++ b/packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/method_channel/method_channel_transaction.dart @@ -43,6 +43,8 @@ class MethodChannelTransaction extends TransactionPlatform { assert(_commands.isEmpty, 'Transactions require all reads to be executed before all writes.'); + print('MethodChannelTransaction calling Transaction#get'); + final Map? result = await MethodChannelFirebaseFirestore .channel .invokeMapMethod('Transaction#get', { @@ -51,6 +53,9 @@ class MethodChannelTransaction extends TransactionPlatform { 'reference': _firestore.doc(documentPath), }); + print( + 'MethodChannelTransaction Transaction#get returned: ${result.toString()}'); + return DocumentSnapshotPlatform( _firestore, documentPath, diff --git a/packages/firebase_analytics/firebase_analytics_web/pubspec.yaml b/packages/firebase_analytics/firebase_analytics_web/pubspec.yaml index 1895503b5d91..3a5d6ede0523 100644 --- a/packages/firebase_analytics/firebase_analytics_web/pubspec.yaml +++ b/packages/firebase_analytics/firebase_analytics_web/pubspec.yaml @@ -9,9 +9,12 @@ environment: flutter: '>=1.12.13+hotfix.4' dependencies: - firebase_analytics_platform_interface: ^3.1.0 - firebase_core: ^1.10.0 - firebase_core_web: ^1.6.0 + firebase_analytics_platform_interface: + path: ../firebase_analytics_platform_interface + firebase_core: + path: ../../firebase_core/firebase_core + firebase_core_web: + path: ../../firebase_core/firebase_core_web flutter: sdk: flutter flutter_web_plugins: diff --git a/packages/firebase_app_check/firebase_app_check/pubspec.yaml b/packages/firebase_app_check/firebase_app_check/pubspec.yaml index f838557b5234..6556b51aba80 100644 --- a/packages/firebase_app_check/firebase_app_check/pubspec.yaml +++ b/packages/firebase_app_check/firebase_app_check/pubspec.yaml @@ -14,8 +14,10 @@ environment: dependencies: firebase_app_check_platform_interface: ^0.0.4 firebase_app_check_web: ^0.0.5+6 - firebase_core: ^1.10.0 - firebase_core_platform_interface: ^4.2.4 + firebase_core: + path: ../../firebase_core/firebase_core + firebase_core_platform_interface: + path: ../../firebase_core/firebase_core_platform_interface flutter: sdk: flutter diff --git a/packages/firebase_core/firebase_core_web/pubspec.yaml b/packages/firebase_core/firebase_core_web/pubspec.yaml index 493510a100c9..bbd323163424 100644 --- a/packages/firebase_core/firebase_core_web/pubspec.yaml +++ b/packages/firebase_core/firebase_core_web/pubspec.yaml @@ -19,7 +19,8 @@ dependencies: meta: ^1.3.0 dev_dependencies: - firebase_core: ^1.10.0 + firebase_core: + path: ../firebase_core flutter_test: sdk: flutter diff --git a/packages/firebase_performance/firebase_performance/pubspec.yaml b/packages/firebase_performance/firebase_performance/pubspec.yaml index e7b7974e2756..13c1e330f921 100644 --- a/packages/firebase_performance/firebase_performance/pubspec.yaml +++ b/packages/firebase_performance/firebase_performance/pubspec.yaml @@ -17,9 +17,12 @@ environment: dependencies: firebase_core: path: ../../firebase_core/firebase_core - firebase_core_platform_interface: ^4.2.4 - firebase_performance_platform_interface: ^0.1.1 - firebase_performance_web: ^0.1.0+6 + firebase_core_platform_interface: + path: ../../firebase_core/firebase_core_platform_interface + firebase_performance_platform_interface: + path: ../firebase_performance_platform_interface + firebase_performance_web: + path: ../firebase_performance_web flutter: sdk: flutter diff --git a/packages/firebase_performance/firebase_performance_platform_interface/pubspec.yaml b/packages/firebase_performance/firebase_performance_platform_interface/pubspec.yaml index 40a9cc8cc088..d255f2d3d14b 100644 --- a/packages/firebase_performance/firebase_performance_platform_interface/pubspec.yaml +++ b/packages/firebase_performance/firebase_performance_platform_interface/pubspec.yaml @@ -8,7 +8,8 @@ environment: flutter: ">=1.17.0" dependencies: - firebase_core: ^1.10.0 + firebase_core: + path: ../../firebase_core/firebase_core flutter: sdk: flutter plugin_platform_interface: ^2.0.1 diff --git a/packages/firebase_performance/firebase_performance_web/pubspec.yaml b/packages/firebase_performance/firebase_performance_web/pubspec.yaml index ee72627554da..a802983c3aa5 100644 --- a/packages/firebase_performance/firebase_performance_web/pubspec.yaml +++ b/packages/firebase_performance/firebase_performance_web/pubspec.yaml @@ -9,9 +9,12 @@ environment: dependencies: firebase: ^9.0.1 - firebase_core: ^1.10.0 - firebase_core_web: ^1.6.0 - firebase_performance_platform_interface: ^0.1.1 + firebase_core: + path: ../../firebase_core/firebase_core + firebase_core_web: + path: ../../firebase_core/firebase_core_web + firebase_performance_platform_interface: + path: ../firebase_performance_platform_interface/ flutter: sdk: flutter flutter_web_plugins: From 42ab1bc3f9900deb26f3567ad592e741af00deaa Mon Sep 17 00:00:00 2001 From: Ben White Date: Thu, 22 Dec 2022 13:29:22 -0600 Subject: [PATCH 05/18] fixing firebase_appinstallations links --- .../firebase_app_installations/pubspec.yaml | 12 ++++++++---- .../pubspec.yaml | 9 ++++++--- .../firebase_app_installations_web/pubspec.yaml | 15 ++++++++++----- 3 files changed, 24 insertions(+), 12 deletions(-) diff --git a/packages/firebase_app_installations/firebase_app_installations/pubspec.yaml b/packages/firebase_app_installations/firebase_app_installations/pubspec.yaml index 9ab3d39a2841..65b8675bdbd9 100644 --- a/packages/firebase_app_installations/firebase_app_installations/pubspec.yaml +++ b/packages/firebase_app_installations/firebase_app_installations/pubspec.yaml @@ -13,10 +13,14 @@ environment: flutter: ">=1.20.0" dependencies: - firebase_app_installations_platform_interface: ^0.1.1+28 - firebase_app_installations_web: ^0.1.1+17 - firebase_core: ^2.4.0 - firebase_core_platform_interface: ^4.5.2 + firebase_app_installations_platform_interface: + path: ../firebase_app_installations_platform_interface + firebase_app_installations_web: + path: ../firebase_app_installations_web + firebase_core: + path: ../../firebase_core/firebase_core + firebase_core_platform_interface: + path: ../../firebase_core/firebase_core_platform_interface flutter: sdk: flutter diff --git a/packages/firebase_app_installations/firebase_app_installations_platform_interface/pubspec.yaml b/packages/firebase_app_installations/firebase_app_installations_platform_interface/pubspec.yaml index 1cedb73f43da..3f9423a0cc88 100644 --- a/packages/firebase_app_installations/firebase_app_installations_platform_interface/pubspec.yaml +++ b/packages/firebase_app_installations/firebase_app_installations_platform_interface/pubspec.yaml @@ -9,15 +9,18 @@ environment: flutter: ">=1.17.0" dependencies: - _flutterfire_internals: ^1.0.11 - firebase_core: ^2.4.0 + _flutterfire_internals: + path: ../../_flutterfire_internals + firebase_core: + path: ../../firebase_core/firebase_core flutter: sdk: flutter meta: ^1.3.0 plugin_platform_interface: ^2.1.3 dev_dependencies: - firebase_core_platform_interface: ^4.5.2 + firebase_core_platform_interface: + path: ../../firebase_core/firebase_core_platform_interface flutter_test: sdk: flutter flutter_lints: ^1.0.0 diff --git a/packages/firebase_app_installations/firebase_app_installations_web/pubspec.yaml b/packages/firebase_app_installations/firebase_app_installations_web/pubspec.yaml index dd55301fa056..c2341adf6f02 100644 --- a/packages/firebase_app_installations/firebase_app_installations_web/pubspec.yaml +++ b/packages/firebase_app_installations/firebase_app_installations_web/pubspec.yaml @@ -9,10 +9,14 @@ environment: flutter: '>=1.20.0' dependencies: - _flutterfire_internals: ^1.0.11 - firebase_app_installations_platform_interface: ^0.1.1+28 - firebase_core: ^2.4.0 - firebase_core_web: ^2.0.2 + _flutterfire_internals: + path: ../../_flutterfire_internals + firebase_app_installations_platform_interface: + path: ../firebase_app_installations_platform_interface + firebase_core: + path: ../../firebase_core/firebase_core + firebase_core_web: + path: ../../firebase_core/firebase_core_web flutter: sdk: flutter flutter_web_plugins: @@ -20,7 +24,8 @@ dependencies: js: ^0.6.3 dev_dependencies: - firebase_core_platform_interface: ^4.5.2 + firebase_core_platform_interface: + path: ../../firebase_core/firebase_core_platform_interface flutter_test: sdk: flutter flutter_lints: ^1.0.0 From dd255eca2ede7dd7a81fd09eb33bab44904dadf6 Mon Sep 17 00:00:00 2001 From: Ben White Date: Thu, 22 Dec 2022 13:48:01 -0600 Subject: [PATCH 06/18] fixing merge issue --- .../lib/src/method_channel/method_channel_firestore.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/method_channel/method_channel_firestore.dart b/packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/method_channel/method_channel_firestore.dart index 45a9c3153dd5..350d988e9edf 100644 --- a/packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/method_channel/method_channel_firestore.dart +++ b/packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/method_channel/method_channel_firestore.dart @@ -324,7 +324,7 @@ class MethodChannelFirebaseFirestore extends FirebaseFirestorePlatform { return completer.future.whenComplete(() { print('runTransaction returning.'); - snapshotStream.cancel(); + snapshotStreamSubscription.cancel(); }); // return completer.future.whenComplete(snapshotStreamSubscription.cancel); From bdd6164d0b92f3f0218fdbc18c772cdaf2cf9ddb Mon Sep 17 00:00:00 2001 From: Ben White Date: Fri, 24 Mar 2023 10:24:55 -0500 Subject: [PATCH 07/18] stuff --- .../cloud_firestore/cloud_firestore/android/build.gradle | 2 +- .../firebase/firestore/FlutterFirebaseFirestorePlugin.java | 5 +++++ .../firestore/streamhandler/QuerySnapshotsStreamHandler.java | 4 ++++ .../lib/src/method_channel/method_channel_query.dart | 2 ++ packages/firebase_auth/firebase_auth_web/pubspec.yaml | 2 +- packages/firebase_ui_localizations/pubspec.yaml | 2 +- 6 files changed, 14 insertions(+), 3 deletions(-) diff --git a/packages/cloud_firestore/cloud_firestore/android/build.gradle b/packages/cloud_firestore/cloud_firestore/android/build.gradle index 543a94ebf3ad..d23076089ad9 100755 --- a/packages/cloud_firestore/cloud_firestore/android/build.gradle +++ b/packages/cloud_firestore/cloud_firestore/android/build.gradle @@ -75,7 +75,7 @@ android { api firebaseCoreProject implementation platform("com.google.firebase:firebase-bom:${getRootProjectExtOrCoreProperty("FirebaseSDKVersion", firebaseCoreProject)}") // implementation 'com.google.firebase:firebase-firestore' - implementation 'com.google.firebase:firebase-firestore:99.0.14-SNAPSHOT' + implementation 'com.google.firebase:firebase-firestore:33.1.1-SNAPSHOT' implementation 'androidx.annotation:annotation:1.2.0' } } diff --git a/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/FlutterFirebaseFirestorePlugin.java b/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/FlutterFirebaseFirestorePlugin.java index 3acb60dbee0f..717585317a97 100644 --- a/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/FlutterFirebaseFirestorePlugin.java +++ b/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/FlutterFirebaseFirestorePlugin.java @@ -595,6 +595,7 @@ public void onMethodCall(MethodCall call, @NonNull final MethodChannel.Result re methodCallTask = queryGet(call.arguments()); break; case "Query#snapshots": + Log.w("onMethodCall", "Query#snapshots METHOD_CHANNEL_NAME: " + METHOD_CHANNEL_NAME); result.success( registerEventChannel( METHOD_CHANNEL_NAME + "/query", new QuerySnapshotsStreamHandler())); @@ -763,6 +764,10 @@ private String registerEventChannel(String prefix, StreamHandler handler) { private String registerEventChannel(String prefix, String identifier, StreamHandler handler) { final String channelName = prefix + "/" + identifier; + Log.w( + "registerEventChannel", + "channelName: " + channelName); + EventChannel channel = new EventChannel(binaryMessenger, channelName, MESSAGE_CODEC); channel.setStreamHandler(handler); eventChannels.put(identifier, channel); diff --git a/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/streamhandler/QuerySnapshotsStreamHandler.java b/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/streamhandler/QuerySnapshotsStreamHandler.java index bc6603af09c1..6cd63d8ddf24 100644 --- a/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/streamhandler/QuerySnapshotsStreamHandler.java +++ b/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/streamhandler/QuerySnapshotsStreamHandler.java @@ -68,6 +68,10 @@ public void onListen(Object arguments, EventSink events) { FlutterFirebaseFirestorePlugin.serverTimestampBehaviorHashMap.put( querySnapshot.hashCode(), serverTimestampBehavior); } + Log.w( + "QuerySnapshotsStreamHandler", + "addSnapshotListener calling events.success"); + events.success(querySnapshot); } }); diff --git a/packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/method_channel/method_channel_query.dart b/packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/method_channel/method_channel_query.dart index 8a9b13d28a0b..e53468083dba 100644 --- a/packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/method_channel/method_channel_query.dart +++ b/packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/method_channel/method_channel_query.dart @@ -162,6 +162,8 @@ class MethodChannelQuery extends QueryPlatform { onError: convertPlatformException, ).listen( (snapshot) { + print('MethodChannelQuery snapshots onListen'); + controller.add(MethodChannelQuerySnapshot(firestore, snapshot)); }, onError: controller.addError, diff --git a/packages/firebase_auth/firebase_auth_web/pubspec.yaml b/packages/firebase_auth/firebase_auth_web/pubspec.yaml index 5019d6df2172..41e94083e23e 100644 --- a/packages/firebase_auth/firebase_auth_web/pubspec.yaml +++ b/packages/firebase_auth/firebase_auth_web/pubspec.yaml @@ -20,7 +20,7 @@ dependencies: flutter_web_plugins: sdk: flutter http_parser: ^4.0.0 - intl: ^0.18.0 + intl: ^0.17.0 js: ^0.6.3 meta: ^1.3.0 diff --git a/packages/firebase_ui_localizations/pubspec.yaml b/packages/firebase_ui_localizations/pubspec.yaml index 592e1bed88d7..ba04a5ecac1b 100644 --- a/packages/firebase_ui_localizations/pubspec.yaml +++ b/packages/firebase_ui_localizations/pubspec.yaml @@ -15,7 +15,7 @@ dependencies: sdk: flutter flutter_localizations: sdk: flutter - intl: ^0.18.0 + intl: ^0.17.0 path: ^1.8.2 dev_dependencies: From d7cfc85f065b9f94e9d6dd980ec6297dcb9da36b Mon Sep 17 00:00:00 2001 From: Ben White Date: Fri, 24 Mar 2023 11:11:27 -0500 Subject: [PATCH 08/18] fixing merge --- packages/_flutterfire_internals/pubspec.yaml | 4 ---- packages/cloud_firestore/cloud_firestore/pubspec.yaml | 1 + packages/cloud_firestore/cloud_firestore_web/pubspec.yaml | 3 +++ packages/firebase_analytics/firebase_analytics/pubspec.yaml | 2 ++ 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/_flutterfire_internals/pubspec.yaml b/packages/_flutterfire_internals/pubspec.yaml index f8b5a938d5d3..47372423a0a6 100755 --- a/packages/_flutterfire_internals/pubspec.yaml +++ b/packages/_flutterfire_internals/pubspec.yaml @@ -9,10 +9,6 @@ environment: flutter: '>=1.12.13+hotfix.5' dependencies: - cloud_firestore_platform_interface: - path: ../cloud_firestore/cloud_firestore_platform_interface - cloud_firestore_web: - path: ../cloud_firestore/cloud_firestore_web collection: ^1.0.0 firebase_core: path: ../firebase_core/firebase_core diff --git a/packages/cloud_firestore/cloud_firestore/pubspec.yaml b/packages/cloud_firestore/cloud_firestore/pubspec.yaml index 926c3eb74373..6042e1aaa682 100755 --- a/packages/cloud_firestore/cloud_firestore/pubspec.yaml +++ b/packages/cloud_firestore/cloud_firestore/pubspec.yaml @@ -20,6 +20,7 @@ dependencies: path: ../cloud_firestore_platform_interface cloud_firestore_web: path: ../cloud_firestore_web + collection: ^1.0.0 firebase_core: path: ../../firebase_core/firebase_core firebase_core_platform_interface: diff --git a/packages/cloud_firestore/cloud_firestore_web/pubspec.yaml b/packages/cloud_firestore/cloud_firestore_web/pubspec.yaml index 797321842186..4df500148c93 100644 --- a/packages/cloud_firestore/cloud_firestore_web/pubspec.yaml +++ b/packages/cloud_firestore/cloud_firestore_web/pubspec.yaml @@ -11,8 +11,11 @@ environment: dependencies: + _flutterfire_internals: + path: ../../_flutterfire_internals cloud_firestore_platform_interface: path: ../cloud_firestore_platform_interface + collection: ^1.0.0 firebase_core: path: ../../firebase_core/firebase_core firebase_core_web: diff --git a/packages/firebase_analytics/firebase_analytics/pubspec.yaml b/packages/firebase_analytics/firebase_analytics/pubspec.yaml index 53a46620bf20..d431e95f5157 100755 --- a/packages/firebase_analytics/firebase_analytics/pubspec.yaml +++ b/packages/firebase_analytics/firebase_analytics/pubspec.yaml @@ -20,6 +20,8 @@ dependencies: path: ../firebase_analytics_web firebase_core: path: ../../firebase_core/firebase_core + firebase_core_platform_interface: + path: ../../firebase_core/firebase_core_platform_interface flutter: sdk: flutter From a68b207079f1ad0a495c968adfffebf89ff98cb3 Mon Sep 17 00:00:00 2001 From: Ben White Date: Fri, 28 Apr 2023 09:38:30 -0500 Subject: [PATCH 09/18] updating version and error handling --- .../cloud_firestore/android/build.gradle | 2 +- .../method_channel/method_channel_write_batch.dart | 14 +++++--------- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/packages/cloud_firestore/cloud_firestore/android/build.gradle b/packages/cloud_firestore/cloud_firestore/android/build.gradle index d23076089ad9..4fd7e3f3cb46 100755 --- a/packages/cloud_firestore/cloud_firestore/android/build.gradle +++ b/packages/cloud_firestore/cloud_firestore/android/build.gradle @@ -75,7 +75,7 @@ android { api firebaseCoreProject implementation platform("com.google.firebase:firebase-bom:${getRootProjectExtOrCoreProperty("FirebaseSDKVersion", firebaseCoreProject)}") // implementation 'com.google.firebase:firebase-firestore' - implementation 'com.google.firebase:firebase-firestore:33.1.1-SNAPSHOT' + implementation 'com.google.firebase:firebase-firestore:34.1.1-SNAPSHOT' implementation 'androidx.annotation:annotation:1.2.0' } } diff --git a/packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/method_channel/method_channel_write_batch.dart b/packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/method_channel/method_channel_write_batch.dart index 37c6dd17156e..b0454e6c4722 100644 --- a/packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/method_channel/method_channel_write_batch.dart +++ b/packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/method_channel/method_channel_write_batch.dart @@ -42,15 +42,11 @@ class MethodChannelWriteBatch extends WriteBatchPlatform { return; } - try { - await MethodChannelFirebaseFirestore.channel - .invokeMethod('WriteBatch#commit', { - 'firestore': _firestore, - 'writes': _writes, - }); - } catch (e, stack) { - convertPlatformException(e, stack); - } + await MethodChannelFirebaseFirestore.channel + .invokeMethod('WriteBatch#commit', { + 'firestore': _firestore, + 'writes': _writes, + }).catchError(convertPlatformException); } @override From 7eb567fff1c212385cd9ba9b5cce20b2aae4bc28 Mon Sep 17 00:00:00 2001 From: Ben White Date: Mon, 8 May 2023 19:13:04 -0500 Subject: [PATCH 10/18] testing overnight with 1.8.3+148 --- .../cloud_firestore/android/build.gradle | 2 +- .../FlutterFirebaseFirestoreMessageCodec.java | 31 +++- .../FlutterFirebaseFirestorePlugin.java | 50 +++++++ .../QuerySnapshotChangesStreamHandler.java | 91 ++++++++++++ .../streamhandler/QuerySnapshotWrapper.java | 133 ++++++++++++++++++ .../cloud_firestore/lib/cloud_firestore.dart | 1 + .../cloud_firestore/lib/src/firestore.dart | 10 ++ .../cloud_firestore/lib/src/query.dart | 29 ++++ .../lib/src/query_snapshot_changes.dart | 78 ++++++++++ .../cloud_firestore_platform_interface.dart | 1 + .../method_channel_firestore.dart | 24 ++++ .../method_channel/method_channel_query.dart | 51 ++++++- .../method_channel_query_snapshot.dart | 5 +- ...method_channel_query_snapshot_changes.dart | 31 ++++ .../utils/firestore_message_codec.dart | 15 +- .../platform_interface_firestore.dart | 8 ++ .../platform_interface_query.dart | 7 + ...form_interface_query_snapshot_changes.dart | 42 ++++++ .../core/GeneratedAndroidFirebaseCore.java | 1 + .../lib/src/pigeon/messages.pigeon.dart | 4 +- 20 files changed, 608 insertions(+), 6 deletions(-) create mode 100644 packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/streamhandler/QuerySnapshotChangesStreamHandler.java create mode 100644 packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/streamhandler/QuerySnapshotWrapper.java create mode 100644 packages/cloud_firestore/cloud_firestore/lib/src/query_snapshot_changes.dart create mode 100644 packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/method_channel/method_channel_query_snapshot_changes.dart create mode 100644 packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/platform_interface/platform_interface_query_snapshot_changes.dart diff --git a/packages/cloud_firestore/cloud_firestore/android/build.gradle b/packages/cloud_firestore/cloud_firestore/android/build.gradle index 4fd7e3f3cb46..52348bc3d6de 100755 --- a/packages/cloud_firestore/cloud_firestore/android/build.gradle +++ b/packages/cloud_firestore/cloud_firestore/android/build.gradle @@ -75,7 +75,7 @@ android { api firebaseCoreProject implementation platform("com.google.firebase:firebase-bom:${getRootProjectExtOrCoreProperty("FirebaseSDKVersion", firebaseCoreProject)}") // implementation 'com.google.firebase:firebase-firestore' - implementation 'com.google.firebase:firebase-firestore:34.1.1-SNAPSHOT' + implementation 'com.google.firebase:firebase-firestore:34.1.2' implementation 'androidx.annotation:annotation:1.2.0' } } diff --git a/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/FlutterFirebaseFirestoreMessageCodec.java b/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/FlutterFirebaseFirestoreMessageCodec.java index 619696493ea7..b0efc20fdc35 100644 --- a/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/FlutterFirebaseFirestoreMessageCodec.java +++ b/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/FlutterFirebaseFirestoreMessageCodec.java @@ -30,6 +30,9 @@ import java.util.List; import java.util.Map; import java.util.Objects; +import android.util.Log; + +import io.flutter.plugins.firebase.firestore.streamhandler.QuerySnapshotWrapper; class FlutterFirebaseFirestoreMessageCodec extends StandardMessageCodec { public static final FlutterFirebaseFirestoreMessageCodec INSTANCE = @@ -56,6 +59,7 @@ class FlutterFirebaseFirestoreMessageCodec extends StandardMessageCodec { @Override protected void writeValue(ByteArrayOutputStream stream, Object value) { +// Log.d("Ben_snapshot", "FlutterFirebaseMessageCodec. writeValue"); if (value instanceof Date) { stream.write(DATA_TYPE_DATE_TIME); writeLong(stream, ((Date) value).getTime()); @@ -74,6 +78,8 @@ protected void writeValue(ByteArrayOutputStream stream, Object value) { writeValue(stream, ((DocumentReference) value).getPath()); } else if (value instanceof DocumentSnapshot) { writeDocumentSnapshot(stream, (DocumentSnapshot) value); + } else if (value instanceof QuerySnapshotWrapper) { + writeQuerySnapshotWrapper(stream, (QuerySnapshotWrapper) value); } else if (value instanceof QuerySnapshot) { writeQuerySnapshot(stream, (QuerySnapshot) value); } else if (value instanceof DocumentChange) { @@ -135,11 +141,15 @@ private void writeDocumentChange(ByteArrayOutputStream stream, DocumentChange va } private void writeQuerySnapshot(ByteArrayOutputStream stream, QuerySnapshot value) { + + Log.d("Ben_snapshot", "FlutterFirebaseMessageCodec. writeQuerySnapshot entered. size: " + String.valueOf(value.size())); + List paths = new ArrayList<>(); Map querySnapshotMap = new HashMap<>(); List> documents = new ArrayList<>(); List metadatas = new ArrayList<>(); + DocumentSnapshot.ServerTimestampBehavior serverTimestampBehavior = FlutterFirebaseFirestorePlugin.serverTimestampBehaviorHashMap.get(value.hashCode()); @@ -160,7 +170,26 @@ private void writeQuerySnapshot(ByteArrayOutputStream stream, QuerySnapshot valu querySnapshotMap.put("metadata", value.getMetadata()); FlutterFirebaseFirestorePlugin.serverTimestampBehaviorHashMap.remove(value.hashCode()); + writeValue(stream, querySnapshotMap); + + Log.d("Ben_snapshot", "FlutterFirebaseMessageCodec. writeQuerySnapshot Exit"); + } + + private void writeQuerySnapshotWrapper(ByteArrayOutputStream stream, QuerySnapshotWrapper value) { + + Log.d("Ben_snapshot", "FlutterFirebaseMessageCodec. writeQuerySnapshotWrapper entered. size: " + String.valueOf(value.size())); + + + // ben, declare size? + Map querySnapshotChangesMap = new HashMap<>(); + + querySnapshotChangesMap.put("documentChanges", value.getDocumentChanges()); + querySnapshotChangesMap.put("metadata", value.getMetadata()); + + writeValue(stream, querySnapshotChangesMap); + + Log.d("Ben_snapshot", "FlutterFirebaseMessageCodec. writeQuerySnapshotWrapper Exit"); } private void writeLoadBundleTaskProgress( @@ -288,7 +317,7 @@ private FirebaseFirestore readFirestoreInstance(ByteBuffer buffer) { firestore.setFirestoreSettings(settings); - firestore.setLoggingEnabled(true); +// firestore.setLoggingEnabled(true); FlutterFirebaseFirestorePlugin.setCachedFirebaseFirestoreInstanceForKey(firestore, appName); return firestore; diff --git a/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/FlutterFirebaseFirestorePlugin.java b/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/FlutterFirebaseFirestorePlugin.java index 32193b07ee37..239cb95cb864 100644 --- a/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/FlutterFirebaseFirestorePlugin.java +++ b/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/FlutterFirebaseFirestorePlugin.java @@ -40,6 +40,7 @@ import io.flutter.plugins.firebase.firestore.streamhandler.LoadBundleStreamHandler; import io.flutter.plugins.firebase.firestore.streamhandler.OnTransactionResultListener; import io.flutter.plugins.firebase.firestore.streamhandler.QuerySnapshotsStreamHandler; +import io.flutter.plugins.firebase.firestore.streamhandler.QuerySnapshotChangesStreamHandler; import io.flutter.plugins.firebase.firestore.streamhandler.SnapshotsInSyncStreamHandler; import io.flutter.plugins.firebase.firestore.streamhandler.TransactionStreamHandler; import io.flutter.plugins.firebase.firestore.utils.ExceptionConverter; @@ -185,6 +186,43 @@ private Task enableNetwork(Map arguments) { return taskCompletionSource.getTask(); } + + private Task enableDebugging(Map arguments) { + TaskCompletionSource taskCompletionSource = new TaskCompletionSource<>(); + + cachedThreadPool.execute( + () -> { + try { + FirebaseFirestore firestore = + (FirebaseFirestore) Objects.requireNonNull(arguments.get("firestore")); + firestore.setLoggingEnabled(true); + taskCompletionSource.setResult(null); + } catch (Exception e) { + taskCompletionSource.setException(e); + } + }); + + return taskCompletionSource.getTask(); + } + + private Task disableDebugging(Map arguments) { + TaskCompletionSource taskCompletionSource = new TaskCompletionSource<>(); + + cachedThreadPool.execute( + () -> { + try { + FirebaseFirestore firestore = + (FirebaseFirestore) Objects.requireNonNull(arguments.get("firestore")); + firestore.setLoggingEnabled(false); + taskCompletionSource.setResult(null); + } catch (Exception e) { + taskCompletionSource.setException(e); + } + }); + + return taskCompletionSource.getTask(); + } + private Task transactionGet(Map arguments) { TaskCompletionSource taskCompletionSource = new TaskCompletionSource<>(); @@ -585,6 +623,12 @@ public void onMethodCall(MethodCall call, @NonNull final MethodChannel.Result re case "Firestore#enableNetwork": methodCallTask = enableNetwork(call.arguments()); break; + case "Firestore#enableDebugging": + methodCallTask = enableDebugging(call.arguments()); + break; + case "Firestore#disableDebugging": + methodCallTask = disableDebugging(call.arguments()); + break; case "Transaction#get": methodCallTask = transactionGet(call.arguments()); break; @@ -616,6 +660,12 @@ public void onMethodCall(MethodCall call, @NonNull final MethodChannel.Result re registerEventChannel( METHOD_CHANNEL_NAME + "/query", new QuerySnapshotsStreamHandler())); return; + case "Query#snapshotChanges": + Log.w("onMethodCall", "Query#snapshotChanges METHOD_CHANNEL_NAME: " + METHOD_CHANNEL_NAME); + result.success( + registerEventChannel( + METHOD_CHANNEL_NAME + "/query", new QuerySnapshotChangesStreamHandler())); //Ben todo + return; case "DocumentReference#snapshots": result.success( registerEventChannel( diff --git a/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/streamhandler/QuerySnapshotChangesStreamHandler.java b/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/streamhandler/QuerySnapshotChangesStreamHandler.java new file mode 100644 index 000000000000..d6bd1e5227ed --- /dev/null +++ b/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/streamhandler/QuerySnapshotChangesStreamHandler.java @@ -0,0 +1,91 @@ +/* + * Copyright 2022, the Chromium project authors. Please see the AUTHORS file + * for details. All rights reserved. Use of this source code is governed by a + * BSD-style license that can be found in the LICENSE file. + */ + +package io.flutter.plugins.firebase.firestore.streamhandler; + +import static io.flutter.plugins.firebase.firestore.FlutterFirebaseFirestorePlugin.DEFAULT_ERROR_CODE; + +import com.google.firebase.firestore.DocumentSnapshot; +import com.google.firebase.firestore.ListenerRegistration; +import com.google.firebase.firestore.MetadataChanges; +import com.google.firebase.firestore.Query; +import com.google.firebase.firestore.QuerySnapshot; +import io.flutter.plugin.common.EventChannel.EventSink; +import io.flutter.plugin.common.EventChannel.StreamHandler; +//import io.flutter.plugins.firebase.firestore.streamhandler.QuerySnapshotWrapper; + +import io.flutter.plugins.firebase.firestore.FlutterFirebaseFirestorePlugin; +import io.flutter.plugins.firebase.firestore.utils.ExceptionConverter; +import io.flutter.plugins.firebase.firestore.utils.ServerTimestampBehaviorConverter; +import java.util.Map; +import java.util.Objects; +import android.util.Log; + +public class QuerySnapshotChangesStreamHandler implements StreamHandler { + + ListenerRegistration listenerRegistration; + + @Override + public void onListen(Object arguments, EventSink events) { + @SuppressWarnings("unchecked") + Map argumentsMap = (Map) arguments; + + MetadataChanges metadataChanges = + (Boolean) Objects.requireNonNull(argumentsMap.get("includeMetadataChanges")) + ? MetadataChanges.INCLUDE + : MetadataChanges.EXCLUDE; + + Query query = (Query) argumentsMap.get("query"); + String serverTimestampBehaviorString = (String) argumentsMap.get("serverTimestampBehavior"); + DocumentSnapshot.ServerTimestampBehavior serverTimestampBehavior = + ServerTimestampBehaviorConverter.toServerTimestampBehavior(serverTimestampBehaviorString); + + if (query == null) { + throw new IllegalArgumentException( + "An error occurred while parsing query arguments, see native logs for more information. Please report this issue."); + } + + Log.w( + "QuerySnapshotChangesStreamHandler", + "Entered OnListen"); + + listenerRegistration = + query.addSnapshotListener( + metadataChanges, + (querySnapshot, exception) -> { + if (exception != null) { + Map exceptionDetails = ExceptionConverter.createDetails(exception); + events.error(DEFAULT_ERROR_CODE, exception.getMessage(), exceptionDetails); + events.endOfStream(); + + Log.e( + "QuerySnapshotChangesStreamHandler", + "OnListen exception: " + exception.getMessage()); + + onCancel(null); + } else { + if (querySnapshot != null) { + FlutterFirebaseFirestorePlugin.serverTimestampBehaviorHashMap.put( + querySnapshot.hashCode(), serverTimestampBehavior); + } + Log.w( + "QuerySnapshotChangesStreamHandler", + "addSnapshotListener calling events.success"); + + QuerySnapshotWrapper wrappedQuerySnapshot = new QuerySnapshotWrapper(querySnapshot); + events.success((QuerySnapshotWrapper) wrappedQuerySnapshot); + } + }); + } + + @Override + public void onCancel(Object arguments) { + if (listenerRegistration != null) { + listenerRegistration.remove(); + listenerRegistration = null; + } + } +} diff --git a/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/streamhandler/QuerySnapshotWrapper.java b/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/streamhandler/QuerySnapshotWrapper.java new file mode 100644 index 000000000000..c9d920bf64ee --- /dev/null +++ b/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/streamhandler/QuerySnapshotWrapper.java @@ -0,0 +1,133 @@ + + + + + +package io.flutter.plugins.firebase.firestore.streamhandler; + +import com.google.firebase.firestore.QuerySnapshot; +import static com.google.firebase.firestore.util.Preconditions.checkNotNull; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import com.google.firebase.firestore.DocumentChange; +import com.google.firebase.firestore.DocumentSnapshot; +import com.google.firebase.firestore.MetadataChanges; +import com.google.firebase.firestore.Query; +import com.google.firebase.firestore.QueryDocumentSnapshot; +import com.google.firebase.firestore.SnapshotMetadata; +import com.google.firebase.firestore.core.ViewSnapshot; +import com.google.firebase.firestore.model.Document; + +import java.util.Iterator; +import java.util.List; + +public class QuerySnapshotWrapper { + private final QuerySnapshot querySnapshot; + + public QuerySnapshotWrapper(QuerySnapshot querySnapshot) { + this.querySnapshot = checkNotNull(querySnapshot); + } + + @NonNull + public Query getQuery() { + return querySnapshot.getQuery(); + } + + /** @return The metadata for this query snapshot. */ + @NonNull + public SnapshotMetadata getMetadata() { + return querySnapshot.getMetadata(); + } + + /** + * Returns the list of documents that changed since the last snapshot. If it's the first snapshot + * all documents will be in the list as added changes. + * + *

Documents with changes only to their metadata will not be included. + * + * @return The list of document changes since the last snapshot. + */ + @NonNull + public List getDocumentChanges() { + return querySnapshot.getDocumentChanges(); + } + + /** + * Returns the list of documents that changed since the last snapshot. If it's the first snapshot + * all documents will be in the list as added changes. + * + * @param metadataChanges Indicates whether metadata-only changes (i.e. only {@code + * DocumentSnapshot.getMetadata()} changed) should be included. + * @return The list of document changes since the last snapshot. + */ + @NonNull + public List getDocumentChanges(@NonNull MetadataChanges metadataChanges) { + + return querySnapshot.getDocumentChanges(metadataChanges); + } + + /** + * Returns the documents in this {@code QuerySnapshot} as a List in order of the query. + * + * @return The list of documents. + */ + @NonNull + public List getDocuments() { + + return querySnapshot.getDocuments(); + } + + /** Returns true if there are no documents in the {@code QuerySnapshot}. */ + public boolean isEmpty() { + return querySnapshot.isEmpty(); + } + + /** Returns the number of documents in the {@code QuerySnapshot}. */ + public int size() { + return querySnapshot.size(); + } + + @NonNull + public Iterator iterator() { + return querySnapshot.iterator(); + } + + /** + * Returns the contents of the documents in the {@code QuerySnapshot}, converted to the provided + * class, as a list. + * + * @param clazz The POJO type used to convert the documents in the list. + */ + @NonNull + public List toObjects(@NonNull Class clazz) { + return querySnapshot.toObjects(clazz); + } + + /** + * Returns the contents of the documents in the {@code QuerySnapshot}, converted to the provided + * class, as a list. + * + * @param clazz The POJO type used to convert the documents in the list. + * @param serverTimestampBehavior Configures the behavior for server timestamps that have not yet + * been set to their final value. + */ + @NonNull + public List toObjects( + @NonNull Class clazz, + @NonNull DocumentSnapshot.ServerTimestampBehavior serverTimestampBehavior) { + + return querySnapshot.toObjects(clazz, serverTimestampBehavior); + } + + @Override + public boolean equals(@Nullable Object obj) { + return querySnapshot.equals(obj); + } + + @Override + public int hashCode() { + return querySnapshot.hashCode(); + } + +} diff --git a/packages/cloud_firestore/cloud_firestore/lib/cloud_firestore.dart b/packages/cloud_firestore/cloud_firestore/lib/cloud_firestore.dart index e03b4cb35374..2730e024edcd 100755 --- a/packages/cloud_firestore/cloud_firestore/lib/cloud_firestore.dart +++ b/packages/cloud_firestore/cloud_firestore/lib/cloud_firestore.dart @@ -55,6 +55,7 @@ part 'src/load_bundle_task_snapshot.dart'; part 'src/query.dart'; part 'src/query_document_snapshot.dart'; part 'src/query_snapshot.dart'; +part 'src/query_snapshot_changes.dart'; part 'src/snapshot_metadata.dart'; part 'src/transaction.dart'; part 'src/utils/codec_utility.dart'; diff --git a/packages/cloud_firestore/cloud_firestore/lib/src/firestore.dart b/packages/cloud_firestore/cloud_firestore/lib/src/firestore.dart index cbba0d660c4b..615779f8dcff 100644 --- a/packages/cloud_firestore/cloud_firestore/lib/src/firestore.dart +++ b/packages/cloud_firestore/cloud_firestore/lib/src/firestore.dart @@ -206,6 +206,16 @@ class FirebaseFirestore extends FirebasePluginPlatform { return _delegate.enableNetwork(); } + /// Enables debugging for this instance. + Future enableDebugging() { + return _delegate.enableDebugging(); + } + + /// Instructs [FirebaseFirestore] to disable the debugging for the instance. + Future disableDebugging() { + return _delegate.disableDebugging(); + } + /// Returns a [Stream] which is called each time all of the active listeners /// have been synchronized. Stream snapshotsInSync() { diff --git a/packages/cloud_firestore/cloud_firestore/lib/src/query.dart b/packages/cloud_firestore/cloud_firestore/lib/src/query.dart index de94076eb93a..b05f6bad9314 100644 --- a/packages/cloud_firestore/cloud_firestore/lib/src/query.dart +++ b/packages/cloud_firestore/cloud_firestore/lib/src/query.dart @@ -86,6 +86,11 @@ abstract class Query { /// Notifies of query results at this location. Stream> snapshots({bool includeMetadataChanges = false}); + /// Notifies of query changes results at this location. + Stream> snapshotChanges({ + bool includeMetadataChanges = false, + }); + /// Creates and returns a new [Query] that's additionally sorted by the specified /// [field]. /// The field may be a [String] representing a single field name or a [FieldPath]. @@ -431,6 +436,16 @@ class _JsonQuery implements Query> { .map((item) => _JsonQuerySnapshot(firestore, item)); } + /// Notifies of query results at this location. + @override + Stream>> snapshotChanges({ + bool includeMetadataChanges = false, + }) { + return _delegate + .snapshotChanges(includeMetadataChanges: includeMetadataChanges) + .map((item) => _JsonQuerySnapshotChanges(firestore, item)); + } + /// Creates and returns a new [Query] that's additionally sorted by the specified /// [field]. /// The field may be a [String] representing a single field name or a [FieldPath]. @@ -893,6 +908,20 @@ class _WithConverterQuery implements Query { ); } + @override + Stream> snapshotChanges( + {bool includeMetadataChanges = false,}) { + return _originalQuery + .snapshotChanges(includeMetadataChanges: includeMetadataChanges) + .map( + (snapshot) => _WithConverterQuerySnapshotChanges( + snapshot, + _fromFirestore, + _toFirestore, + ), + ); + } + @override Query endAt(Iterable values) { return _mapQuery(_originalQuery.endAt(values)); diff --git a/packages/cloud_firestore/cloud_firestore/lib/src/query_snapshot_changes.dart b/packages/cloud_firestore/cloud_firestore/lib/src/query_snapshot_changes.dart new file mode 100644 index 000000000000..9919299c8dfb --- /dev/null +++ b/packages/cloud_firestore/cloud_firestore/lib/src/query_snapshot_changes.dart @@ -0,0 +1,78 @@ +// Copyright 2020, the Chromium project authors. Please see the AUTHORS file +// for details. All rights reserved. Use of this source code is governed by a +// BSD-style license that can be found in the LICENSE file. + +part of cloud_firestore; + +/// Contains the results of a query. +/// It can contain zero or more [DocumentSnapshot] objects. +abstract class QuerySnapshotChanges { + /// An array of the documents that changed since the last snapshot. If this + /// is the first snapshot, all documents will be in the list as Added changes. + List> get docChanges; + + /// Returns the [SnapshotMetadata] for this snapshot. + SnapshotMetadata get metadata; + + /// Returns the size (number of documents) of this snapshot. + int get size; +} + +/// Contains the results of a query. +/// It can contain zero or more [DocumentSnapshot] objects. +class _JsonQuerySnapshotChanges + implements QuerySnapshotChanges> { + _JsonQuerySnapshotChanges(this._firestore, this._delegate) { + QuerySnapshotChangesPlatform.verify(_delegate); + } + + final FirebaseFirestore _firestore; + final QuerySnapshotChangesPlatform _delegate; + + @override + List>> get docChanges { + return _delegate.docChanges.map((documentDelegate) { + return _JsonDocumentChange(_firestore, documentDelegate); + }).toList(); + } + + @override + SnapshotMetadata get metadata => SnapshotMetadata._(_delegate.metadata); + + @override + int get size => _delegate.size; +} + +/// Contains the results of a query. +/// It can contain zero or more [DocumentSnapshot] objects. +class _WithConverterQuerySnapshotChanges + implements QuerySnapshotChanges { + _WithConverterQuerySnapshotChanges( + this._originalQuerySnapshotChanges, + this._fromFirestore, + this._toFirestore, + ); + + final QuerySnapshotChanges> + _originalQuerySnapshotChanges; + final FromFirestore _fromFirestore; + final ToFirestore _toFirestore; + + @override + List> get docChanges { + return [ + for (final change in _originalQuerySnapshotChanges.docChanges) + _WithConverterDocumentChange( + change, + _fromFirestore, + _toFirestore, + ), + ]; + } + + @override + SnapshotMetadata get metadata => _originalQuerySnapshotChanges.metadata; + + @override + int get size => _originalQuerySnapshotChanges.size; +} diff --git a/packages/cloud_firestore/cloud_firestore_platform_interface/lib/cloud_firestore_platform_interface.dart b/packages/cloud_firestore/cloud_firestore_platform_interface/lib/cloud_firestore_platform_interface.dart index 74c1e03601cb..2354e1a68495 100644 --- a/packages/cloud_firestore/cloud_firestore_platform_interface/lib/cloud_firestore_platform_interface.dart +++ b/packages/cloud_firestore/cloud_firestore_platform_interface/lib/cloud_firestore_platform_interface.dart @@ -31,6 +31,7 @@ export 'src/platform_interface/platform_interface_load_bundle_task.dart'; export 'src/platform_interface/platform_interface_load_bundle_task_snapshot.dart'; export 'src/platform_interface/platform_interface_query.dart'; export 'src/platform_interface/platform_interface_query_snapshot.dart'; +export 'src/platform_interface/platform_interface_query_snapshot_changes.dart'; export 'src/platform_interface/platform_interface_transaction.dart'; export 'src/platform_interface/platform_interface_write_batch.dart'; export 'src/platform_interface/utils/load_bundle_task_state.dart'; diff --git a/packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/method_channel/method_channel_firestore.dart b/packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/method_channel/method_channel_firestore.dart index 350d988e9edf..26f59b10812d 100644 --- a/packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/method_channel/method_channel_firestore.dart +++ b/packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/method_channel/method_channel_firestore.dart @@ -192,6 +192,30 @@ class MethodChannelFirebaseFirestore extends FirebaseFirestorePlatform { } } + @override + Future enableDebugging() async { + try { + await channel + .invokeMethod('Firestore#enableDebugging', { + 'firestore': this, + }); + } catch (e, stack) { + convertPlatformException(e, stack); + } + } + + @override + Future disableDebugging() async { + try { + await channel + .invokeMethod('Firestore#disableDebugging', { + 'firestore': this, + }); + } catch (e, stack) { + convertPlatformException(e, stack); + } + } + @override Stream snapshotsInSync() { StreamSubscription? snapshotStreamSubscription; diff --git a/packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/method_channel/method_channel_query.dart b/packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/method_channel/method_channel_query.dart index 0a49ab28401c..fd4e42e5f576 100644 --- a/packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/method_channel/method_channel_query.dart +++ b/packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/method_channel/method_channel_query.dart @@ -14,6 +14,7 @@ import 'package:flutter/services.dart'; import 'method_channel_aggregate_query.dart'; import 'method_channel_firestore.dart'; import 'method_channel_query_snapshot.dart'; +import 'method_channel_query_snapshot_changes.dart'; import 'utils/exception.dart'; import 'utils/source.dart'; @@ -163,7 +164,7 @@ class MethodChannelQuery extends QueryPlatform { onError: convertPlatformException, ).listen( (snapshot) { - print('MethodChannelQuery snapshots onListen'); + print('documentChanges. MethodChannelQuery snapshots onListen'); controller.add(MethodChannelQuerySnapshot(firestore, snapshot)); }, @@ -178,6 +179,54 @@ class MethodChannelQuery extends QueryPlatform { return controller.stream; } + @override + Stream snapshotChanges({ + bool includeMetadataChanges = false, + ServerTimestampBehavior serverTimestampBehavior = + ServerTimestampBehavior.none, + }) { + // It's fine to let the StreamController be garbage collected once all the + // subscribers have cancelled; this analyzer warning is safe to ignore. + late StreamController + controller; // ignore: close_sinks + + StreamSubscription? snapshotChangesStreamSubscription; + + controller = StreamController.broadcast( + onListen: () async { + final observerId = await MethodChannelFirebaseFirestore.channel + .invokeMethod('Query#snapshotChanges'); + + snapshotChangesStreamSubscription = + MethodChannelFirebaseFirestore.querySnapshotChannel(observerId!) + .receiveGuardedBroadcastStream( + arguments: { + 'query': this, + 'includeMetadataChanges': includeMetadataChanges, + 'serverTimestampBehavior': getServerTimestampBehaviorString( + serverTimestampBehavior, + ), + }, + onError: convertPlatformException, + ).listen( + (snapshotChanges) { + print( + 'documentChanges. MethodChannelQuery snapshotChanges onListen'); + + controller.add( + MethodChannelQuerySnapshotChanges(firestore, snapshotChanges)); + }, + onError: controller.addError, + ); + }, + onCancel: () { + snapshotChangesStreamSubscription?.cancel(); + }, + ); + + return controller.stream; + } + @override QueryPlatform orderBy(Iterable> orders) { return _copyWithParameters({'orderBy': orders}); diff --git a/packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/method_channel/method_channel_query_snapshot.dart b/packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/method_channel/method_channel_query_snapshot.dart index 4d25babc2e17..17c5532e76e6 100644 --- a/packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/method_channel/method_channel_query_snapshot.dart +++ b/packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/method_channel/method_channel_query_snapshot.dart @@ -4,6 +4,7 @@ // BSD-style license that can be found in the LICENSE file. import 'package:cloud_firestore_platform_interface/cloud_firestore_platform_interface.dart'; +import 'package:flutter/material.dart'; import 'method_channel_document_change.dart'; @@ -39,5 +40,7 @@ class MethodChannelQuerySnapshot extends QuerySnapshotPlatform { SnapshotMetadataPlatform( data['metadata']['hasPendingWrites'], data['metadata']['isFromCache'], - )); + )) { + debugPrint('documentChanges. MethodChannelQuerySnapshot called'); + } } diff --git a/packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/method_channel/method_channel_query_snapshot_changes.dart b/packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/method_channel/method_channel_query_snapshot_changes.dart new file mode 100644 index 000000000000..bbbb123a3a2f --- /dev/null +++ b/packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/method_channel/method_channel_query_snapshot_changes.dart @@ -0,0 +1,31 @@ +// ignore_for_file: require_trailing_commas +// Copyright 2017, the Chromium project authors. Please see the AUTHORS file +// for details. All rights reserved. Use of this source code is governed by a +// BSD-style license that can be found in the LICENSE file. + +import 'package:cloud_firestore_platform_interface/cloud_firestore_platform_interface.dart'; +import 'package:flutter/material.dart'; + +import 'method_channel_document_change.dart'; + +/// An implementation of [QuerySnapshotChangesPlatform] that uses [MethodChannel] to +/// communicate with Firebase plugins. +class MethodChannelQuerySnapshotChanges extends QuerySnapshotChangesPlatform { + /// Creates a [MethodChannelQuerySnapshotChanges] from the given [data] + MethodChannelQuerySnapshotChanges( + FirebaseFirestorePlatform firestore, Map data) + : super( + List.generate( + data['documentChanges'].length, (int index) { + return MethodChannelDocumentChange( + firestore, + Map.from(data['documentChanges'][index]), + ); + }), + SnapshotMetadataPlatform( + data['metadata']['hasPendingWrites'], + data['metadata']['isFromCache'], + )) { + debugPrint('documentChanges. MethodChannelQuerySnapshot called'); + } +} diff --git a/packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/method_channel/utils/firestore_message_codec.dart b/packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/method_channel/utils/firestore_message_codec.dart index 658bdda3f4b7..fa94001c68d8 100644 --- a/packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/method_channel/utils/firestore_message_codec.dart +++ b/packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/method_channel/utils/firestore_message_codec.dart @@ -74,6 +74,9 @@ class FirestoreMessageCodec extends StandardMessageCodec { buffer.putFloat64(value.longitude); } else if (value is DocumentReferencePlatform) { buffer.putUint8(_kDocumentReference); + + debugPrint('firestore_message_codec calling writeValue 1'); + writeValue(buffer, value.firestore); writeValue(buffer, value.path); } else if (value is Blob) { @@ -84,7 +87,10 @@ class FirestoreMessageCodec extends StandardMessageCodec { MethodChannelFieldValue delegate = FieldValuePlatform.getDelegate(value); final int code = _kFieldValueCodes[delegate.type]!; buffer.putUint8(code); - if (delegate.value != null) writeValue(buffer, delegate.value); + if (delegate.value != null) { + debugPrint('firestore_message_codec calling writeValue 2'); + writeValue(buffer, delegate.value); + } } else if (value is FieldPathType) { final int code = _kFieldPathCodes[value]!; buffer.putUint8(code); @@ -92,14 +98,18 @@ class FirestoreMessageCodec extends StandardMessageCodec { buffer.putUint8(_kFieldPath); writeSize(buffer, value.components.length); for (final String item in value.components) { + debugPrint('firestore_message_codec calling writeValue 3'); writeValue(buffer, item); } } else if (value is MethodChannelFirebaseFirestore) { buffer.putUint8(_kFirestoreInstance); + debugPrint('firestore_message_codec calling writeValue 4'); writeValue(buffer, value.app.name); + debugPrint('firestore_message_codec calling writeValue 5'); writeValue(buffer, value.settings); } else if (value is MethodChannelQuery) { buffer.putUint8(_kFirestoreQuery); + debugPrint('firestore_message_codec calling writeValue 6'); writeValue(buffer, { 'firestore': value.firestore, 'path': value.path, @@ -108,8 +118,10 @@ class FirestoreMessageCodec extends StandardMessageCodec { }); } else if (value is Settings) { buffer.putUint8(_kFirestoreSettings); + debugPrint('firestore_message_codec calling writeValue 7'); writeValue(buffer, value.asMap); } else if (value is Iterable && value is! List) { + debugPrint('firestore_message_codec calling writeValue 8'); super.writeValue(buffer, value.toList()); } else if (value == double.nan) { buffer.putUint8(_kNaN); @@ -118,6 +130,7 @@ class FirestoreMessageCodec extends StandardMessageCodec { } else if (value == double.negativeInfinity) { buffer.putUint8(_kNegativeInfinity); } else { + debugPrint('firestore_message_codec calling writeValue 9'); super.writeValue(buffer, value); } } diff --git a/packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/platform_interface/platform_interface_firestore.dart b/packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/platform_interface/platform_interface_firestore.dart index 44a908989f70..17d2c1fbb1c5 100644 --- a/packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/platform_interface/platform_interface_firestore.dart +++ b/packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/platform_interface/platform_interface_firestore.dart @@ -114,6 +114,14 @@ abstract class FirebaseFirestorePlatform extends PlatformInterface { throw UnimplementedError('enableNetwork() is not implemented'); } + Future enableDebugging() { + throw UnimplementedError('enableDebugging() is not implemented'); + } + + Future disableDebugging() { + throw UnimplementedError('disableDebugging() is not implemented'); + } + /// Returns a [Stream] which is called each time all of the active listeners /// have been synchronised. Stream snapshotsInSync() { diff --git a/packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/platform_interface/platform_interface_query.dart b/packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/platform_interface/platform_interface_query.dart index 3db6b98b4efd..4817827e598c 100644 --- a/packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/platform_interface/platform_interface_query.dart +++ b/packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/platform_interface/platform_interface_query.dart @@ -139,6 +139,13 @@ abstract class QueryPlatform extends PlatformInterface { throw UnimplementedError('snapshots() is not implemented'); } + /// Notifies of query change results at this location + Stream snapshotChanges({ + bool includeMetadataChanges = false, + }) { + throw UnimplementedError('snapshotChanges() is not implemented'); + } + /// Creates and returns a new [QueryPlatform] that's additionally sorted by the specified /// [field]. /// The field may be a [String] representing a single field name or a [FieldPath]. diff --git a/packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/platform_interface/platform_interface_query_snapshot_changes.dart b/packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/platform_interface/platform_interface_query_snapshot_changes.dart new file mode 100644 index 000000000000..3c654568cb07 --- /dev/null +++ b/packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/platform_interface/platform_interface_query_snapshot_changes.dart @@ -0,0 +1,42 @@ +// ignore_for_file: require_trailing_commas +// Copyright 2020, the Chromium project authors. Please see the AUTHORS file +// for details. All rights reserved. Use of this source code is governed by a +// BSD-style license that can be found in the LICENSE file. + +import 'package:cloud_firestore_platform_interface/cloud_firestore_platform_interface.dart'; +import 'package:plugin_platform_interface/plugin_platform_interface.dart'; + +/// A interface that contains zero or more [DocumentSnapshotPlatform] objects +/// representing the results of a query. +/// +/// The documents can be accessed as a list by calling [docs()] and the number of documents +/// can be determined by calling [size()]. +class QuerySnapshotChangesPlatform extends PlatformInterface { + /// Create a [QuerySnapshotChangesPlatform] + QuerySnapshotChangesPlatform( + this.docChanges, + this.metadata, + ) : super(token: _token); + + static final Object _token = Object(); + + /// Throws an [AssertionError] if [instance] does not extend + /// [QuerySnapshotChangesPlatform]. + /// + /// This is used by the app-facing [QuerySnapshotChanges] to ensure that + /// the object in which it's going to delegate calls has been + /// constructed properly. + static void verify(QuerySnapshotChangesPlatform instance) { + PlatformInterface.verify(instance, _token); + } + + /// An array of the documents that changed since the last snapshot. If this + /// is the first snapshot, all documents will be in the list as Added changes. + final List docChanges; + + /// Metadata for the document + final SnapshotMetadataPlatform metadata; + + /// The number of documents with changes in this [QuerySnapshotChangesPlatform]. + int get size => docChanges.length; +} diff --git a/packages/firebase_core/firebase_core/android/src/main/java/io/flutter/plugins/firebase/core/GeneratedAndroidFirebaseCore.java b/packages/firebase_core/firebase_core/android/src/main/java/io/flutter/plugins/firebase/core/GeneratedAndroidFirebaseCore.java index d3f4b5ed3b83..1acc6a09f962 100644 --- a/packages/firebase_core/firebase_core/android/src/main/java/io/flutter/plugins/firebase/core/GeneratedAndroidFirebaseCore.java +++ b/packages/firebase_core/firebase_core/android/src/main/java/io/flutter/plugins/firebase/core/GeneratedAndroidFirebaseCore.java @@ -502,6 +502,7 @@ protected Object readValueOfType(byte type, ByteBuffer buffer) { @Override protected void writeValue(ByteArrayOutputStream stream, Object value) { + Log.d("Ben_snapshot", "GeneratedAndroidFirebaseCore. writeValue"); if (value instanceof PigeonFirebaseOptions) { stream.write(128); writeValue(stream, ((PigeonFirebaseOptions) value).toMap()); diff --git a/packages/firebase_core/firebase_core_platform_interface/lib/src/pigeon/messages.pigeon.dart b/packages/firebase_core/firebase_core_platform_interface/lib/src/pigeon/messages.pigeon.dart index 9420915342de..563001023790 100644 --- a/packages/firebase_core/firebase_core_platform_interface/lib/src/pigeon/messages.pigeon.dart +++ b/packages/firebase_core/firebase_core_platform_interface/lib/src/pigeon/messages.pigeon.dart @@ -9,7 +9,7 @@ import 'dart:async'; import 'dart:typed_data' show Uint8List, Int32List, Int64List, Float64List; -import 'package:flutter/foundation.dart' show WriteBuffer, ReadBuffer; +import 'package:flutter/foundation.dart'; import 'package:flutter/services.dart'; class PigeonFirebaseOptions { @@ -125,6 +125,8 @@ class _FirebaseCoreHostApiCodec extends StandardMessageCodec { const _FirebaseCoreHostApiCodec(); @override void writeValue(WriteBuffer buffer, Object? value) { + debugPrint('messages.pigeon.dart writeValue '); + if (value is PigeonFirebaseOptions) { buffer.putUint8(128); writeValue(buffer, value.encode()); From be8812a72d2e8d0897bc4e1529b70bb77a5e4671 Mon Sep 17 00:00:00 2001 From: Ben White Date: Mon, 22 May 2023 15:20:31 -0500 Subject: [PATCH 11/18] Code cleanup --- .../cloud_firestore/android/build.gradle | 2 +- .../FlutterFirebaseFirestoreMessageCodec.java | 13 ---------- .../FlutterFirebaseFirestorePlugin.java | 8 ------- .../QuerySnapshotChangesStreamHandler.java | 9 ------- .../TransactionStreamHandler.java | 17 ------------- .../method_channel_firestore.dart | 24 +------------------ .../method_channel/method_channel_query.dart | 5 ---- .../method_channel_query_snapshot.dart | 5 +--- ...method_channel_query_snapshot_changes.dart | 5 +--- .../utils/firestore_message_codec.dart | 10 -------- .../core/GeneratedAndroidFirebaseCore.java | 1 - .../lib/src/pigeon/messages.pigeon.dart | 3 --- 12 files changed, 4 insertions(+), 98 deletions(-) diff --git a/packages/cloud_firestore/cloud_firestore/android/build.gradle b/packages/cloud_firestore/cloud_firestore/android/build.gradle index 52348bc3d6de..eed14afecb7b 100755 --- a/packages/cloud_firestore/cloud_firestore/android/build.gradle +++ b/packages/cloud_firestore/cloud_firestore/android/build.gradle @@ -75,7 +75,7 @@ android { api firebaseCoreProject implementation platform("com.google.firebase:firebase-bom:${getRootProjectExtOrCoreProperty("FirebaseSDKVersion", firebaseCoreProject)}") // implementation 'com.google.firebase:firebase-firestore' - implementation 'com.google.firebase:firebase-firestore:34.1.2' + implementation 'com.google.firebase:firebase-firestore:24.6.1' implementation 'androidx.annotation:annotation:1.2.0' } } diff --git a/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/FlutterFirebaseFirestoreMessageCodec.java b/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/FlutterFirebaseFirestoreMessageCodec.java index b0efc20fdc35..ed026a2dd1e5 100644 --- a/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/FlutterFirebaseFirestoreMessageCodec.java +++ b/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/FlutterFirebaseFirestoreMessageCodec.java @@ -59,7 +59,6 @@ class FlutterFirebaseFirestoreMessageCodec extends StandardMessageCodec { @Override protected void writeValue(ByteArrayOutputStream stream, Object value) { -// Log.d("Ben_snapshot", "FlutterFirebaseMessageCodec. writeValue"); if (value instanceof Date) { stream.write(DATA_TYPE_DATE_TIME); writeLong(stream, ((Date) value).getTime()); @@ -141,9 +140,6 @@ private void writeDocumentChange(ByteArrayOutputStream stream, DocumentChange va } private void writeQuerySnapshot(ByteArrayOutputStream stream, QuerySnapshot value) { - - Log.d("Ben_snapshot", "FlutterFirebaseMessageCodec. writeQuerySnapshot entered. size: " + String.valueOf(value.size())); - List paths = new ArrayList<>(); Map querySnapshotMap = new HashMap<>(); List> documents = new ArrayList<>(); @@ -172,24 +168,15 @@ private void writeQuerySnapshot(ByteArrayOutputStream stream, QuerySnapshot valu FlutterFirebaseFirestorePlugin.serverTimestampBehaviorHashMap.remove(value.hashCode()); writeValue(stream, querySnapshotMap); - - Log.d("Ben_snapshot", "FlutterFirebaseMessageCodec. writeQuerySnapshot Exit"); } private void writeQuerySnapshotWrapper(ByteArrayOutputStream stream, QuerySnapshotWrapper value) { - - Log.d("Ben_snapshot", "FlutterFirebaseMessageCodec. writeQuerySnapshotWrapper entered. size: " + String.valueOf(value.size())); - - - // ben, declare size? Map querySnapshotChangesMap = new HashMap<>(); querySnapshotChangesMap.put("documentChanges", value.getDocumentChanges()); querySnapshotChangesMap.put("metadata", value.getMetadata()); writeValue(stream, querySnapshotChangesMap); - - Log.d("Ben_snapshot", "FlutterFirebaseMessageCodec. writeQuerySnapshotWrapper Exit"); } private void writeLoadBundleTaskProgress( diff --git a/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/FlutterFirebaseFirestorePlugin.java b/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/FlutterFirebaseFirestorePlugin.java index 239cb95cb864..e0968a6f057d 100644 --- a/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/FlutterFirebaseFirestorePlugin.java +++ b/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/FlutterFirebaseFirestorePlugin.java @@ -255,7 +255,6 @@ private Task transactionGet(Map arguments) { private void transactionStoreResult(Map arguments) { String transactionId = (String) Objects.requireNonNull(arguments.get("transactionId")); - Log.w("transactionStoreResult", "transactionId: " + transactionId); @SuppressWarnings("unchecked") Map result = (Map) Objects.requireNonNull(arguments.get("result")); @@ -635,7 +634,6 @@ public void onMethodCall(MethodCall call, @NonNull final MethodChannel.Result re case "Transaction#create": final String transactionId = UUID.randomUUID().toString().toLowerCase(Locale.US); - Log.w("FlutterFirebaseFirestorePlugin", "Transaction#create calling TransactionStreamHandler transactionId: " + transactionId); final TransactionStreamHandler handler = new TransactionStreamHandler( transaction -> transactions.put(transactionId, transaction)); @@ -655,13 +653,11 @@ public void onMethodCall(MethodCall call, @NonNull final MethodChannel.Result re methodCallTask = queryGet(call.arguments()); break; case "Query#snapshots": - Log.w("onMethodCall", "Query#snapshots METHOD_CHANNEL_NAME: " + METHOD_CHANNEL_NAME); result.success( registerEventChannel( METHOD_CHANNEL_NAME + "/query", new QuerySnapshotsStreamHandler())); return; case "Query#snapshotChanges": - Log.w("onMethodCall", "Query#snapshotChanges METHOD_CHANNEL_NAME: " + METHOD_CHANNEL_NAME); result.success( registerEventChannel( METHOD_CHANNEL_NAME + "/query", new QuerySnapshotChangesStreamHandler())); //Ben todo @@ -830,10 +826,6 @@ private String registerEventChannel(String prefix, StreamHandler handler) { private String registerEventChannel(String prefix, String identifier, StreamHandler handler) { final String channelName = prefix + "/" + identifier; - Log.w( - "registerEventChannel", - "channelName: " + channelName); - EventChannel channel = new EventChannel(binaryMessenger, channelName, MESSAGE_CODEC); channel.setStreamHandler(handler); eventChannels.put(identifier, channel); diff --git a/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/streamhandler/QuerySnapshotChangesStreamHandler.java b/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/streamhandler/QuerySnapshotChangesStreamHandler.java index d6bd1e5227ed..50711d8f848f 100644 --- a/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/streamhandler/QuerySnapshotChangesStreamHandler.java +++ b/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/streamhandler/QuerySnapshotChangesStreamHandler.java @@ -15,8 +15,6 @@ import com.google.firebase.firestore.QuerySnapshot; import io.flutter.plugin.common.EventChannel.EventSink; import io.flutter.plugin.common.EventChannel.StreamHandler; -//import io.flutter.plugins.firebase.firestore.streamhandler.QuerySnapshotWrapper; - import io.flutter.plugins.firebase.firestore.FlutterFirebaseFirestorePlugin; import io.flutter.plugins.firebase.firestore.utils.ExceptionConverter; import io.flutter.plugins.firebase.firestore.utils.ServerTimestampBehaviorConverter; @@ -48,10 +46,6 @@ public void onListen(Object arguments, EventSink events) { "An error occurred while parsing query arguments, see native logs for more information. Please report this issue."); } - Log.w( - "QuerySnapshotChangesStreamHandler", - "Entered OnListen"); - listenerRegistration = query.addSnapshotListener( metadataChanges, @@ -71,9 +65,6 @@ public void onListen(Object arguments, EventSink events) { FlutterFirebaseFirestorePlugin.serverTimestampBehaviorHashMap.put( querySnapshot.hashCode(), serverTimestampBehavior); } - Log.w( - "QuerySnapshotChangesStreamHandler", - "addSnapshotListener calling events.success"); QuerySnapshotWrapper wrappedQuerySnapshot = new QuerySnapshotWrapper(querySnapshot); events.success((QuerySnapshotWrapper) wrappedQuerySnapshot); diff --git a/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/streamhandler/TransactionStreamHandler.java b/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/streamhandler/TransactionStreamHandler.java index 5d9f62ea22fa..466b8e5a02c2 100644 --- a/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/streamhandler/TransactionStreamHandler.java +++ b/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/streamhandler/TransactionStreamHandler.java @@ -39,7 +39,6 @@ public interface OnTransactionStartedListener { final OnTransactionStartedListener onTransactionStartedListener; public TransactionStreamHandler(OnTransactionStartedListener onTransactionStartedListener) { - Log.w("TransactionStreamHandler", "Created" + this.toString()); this.onTransactionStartedListener = onTransactionStartedListener; } @@ -49,7 +48,6 @@ public TransactionStreamHandler(OnTransactionStartedListener onTransactionStarte @Override public void onListen(Object arguments, EventSink events) { - Log.w("TransactionStreamHandler", "onListen " + this.toString()); @SuppressWarnings("unchecked") Map argumentsMap = (Map) arguments; @@ -68,9 +66,6 @@ public void onListen(Object arguments, EventSink events) { timeout = 5000L; } - - Log.w("TransactionStreamHandler", "timeout: " + timeout.toString()); - // Always sent by the PlatformChannel int maxAttempts = (int) argumentsMap.get("maxAttempts"); @@ -79,7 +74,6 @@ public void onListen(Object arguments, EventSink events) { .runTransaction( new TransactionOptions.Builder().setMaxAttempts(maxAttempts).build(), transaction -> { - Log.w("TransactionStreamHandler", "entered firestore.runTransaction"); onTransactionStartedListener.onStarted(transaction); Map attemptMap = new HashMap<>(); @@ -88,8 +82,6 @@ public void onListen(Object arguments, EventSink events) { mainLooper.post(() -> events.success(attemptMap)); try { - Log.w("TransactionStreamHandler", "semaphore.tryAcquire"); - if (!semaphore.tryAcquire(timeout, TimeUnit.MILLISECONDS)) { return FlutterFirebaseFirestoreTransactionResult.failed( new FirebaseFirestoreException("timed out", Code.DEADLINE_EXCEEDED)); @@ -101,15 +93,11 @@ public void onListen(Object arguments, EventSink events) { if (response.isEmpty()) { - Log.w("TransactionStreamHandler", "response.isEmpty"); return FlutterFirebaseFirestoreTransactionResult.complete(); } - Log.w("TransactionStreamHandler", "response.is not empty"); final String resultType = (String) response.get("type"); - Log.w("TransactionStreamHandler", "resultType: " + resultType); - if ("ERROR".equalsIgnoreCase(resultType)) { return FlutterFirebaseFirestoreTransactionResult.complete(); } @@ -131,13 +119,10 @@ public void onListen(Object arguments, EventSink events) { transaction.delete(documentReference); break; case "UPDATE": - Log.w("TransactionStreamHandler", "UPDATE: " + documentReference.getPath()); transaction.update(documentReference, Objects.requireNonNull(data)); break; case "SET": { - Log.w("TransactionStreamHandler", "SET: " + documentReference.getPath()); - @SuppressWarnings("unchecked") Map options = (Map) Objects.requireNonNull(command.get("options")); @@ -187,13 +172,11 @@ public void onListen(Object arguments, EventSink events) { @Override public void onCancel(Object arguments) { - Log.w("TransactionStreamHandler", "onCancel semaphore.release"); semaphore.release(); } @Override public void receiveTransactionResponse(Map result) { - Log.w("TransactionStreamHandler", "receiveTransactionResponse semaphore.release"); response.putAll(result); semaphore.release(); } diff --git a/packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/method_channel/method_channel_firestore.dart b/packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/method_channel/method_channel_firestore.dart index 26f59b10812d..81fef97c9e6d 100644 --- a/packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/method_channel/method_channel_firestore.dart +++ b/packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/method_channel/method_channel_firestore.dart @@ -253,13 +253,10 @@ class MethodChannelFirebaseFirestore extends FirebaseFirestorePlatform { assert(timeout.inMilliseconds > 0, 'Transaction timeout must be more than 0 milliseconds'); - print( - 'method_channel_firestore.dart runTransaction calling Transaction#create'); final String? transactionId = await MethodChannelFirebaseFirestore.channel.invokeMethod( 'Transaction#create', ); - print('runTransaction transactionId: $transactionId'); Completer completer = Completer(); @@ -282,8 +279,6 @@ class MethodChannelFirebaseFirestore extends FirebaseFirestorePlatform { ).listen( (event) async { if (event['error'] != null) { - print( - 'runTransaction receiveBroadcastStream error code: ${event['error']['code']} message: ${event['error']['message']}'); completer.completeError( FirebaseException( plugin: 'cloud_firestore', @@ -293,12 +288,8 @@ class MethodChannelFirebaseFirestore extends FirebaseFirestorePlatform { ); return; } else if (event['complete'] == true) { - print('runTransaction receiveBroadcastStream complete'); completer.complete(result); return; - } else { - print( - 'runTransaction receiveBroadcastStream else ... event: ${event.toString()}'); } final TransactionPlatform transaction = @@ -307,14 +298,8 @@ class MethodChannelFirebaseFirestore extends FirebaseFirestorePlatform { // If the transaction fails on Dart side, then forward the error // right away and only inform native side of the error. try { - print('runTransaction calling transactionHandler.'); result = await transactionHandler(transaction) as T; - print( - 'runTransaction transactionHandler returned result: ${result.toString()}'); } catch (error, stack) { - print( - 'runTransaction transactionHandler error: ${error.toString()} stack: ${stack.toString()}'); - // Signal native that a user error occurred, and finish the // transaction await MethodChannelFirebaseFirestore.channel @@ -332,8 +317,6 @@ class MethodChannelFirebaseFirestore extends FirebaseFirestorePlatform { return; } - print('runTransaction success'); - // Send the transaction commands to Dart. await MethodChannelFirebaseFirestore.channel .invokeMethod('Transaction#storeResult', { @@ -346,12 +329,7 @@ class MethodChannelFirebaseFirestore extends FirebaseFirestorePlatform { }, ); - return completer.future.whenComplete(() { - print('runTransaction returning.'); - snapshotStreamSubscription.cancel(); - }); - - // return completer.future.whenComplete(snapshotStreamSubscription.cancel); + return completer.future.whenComplete(snapshotStreamSubscription.cancel); } @override diff --git a/packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/method_channel/method_channel_query.dart b/packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/method_channel/method_channel_query.dart index fd4e42e5f576..5afff72a4ded 100644 --- a/packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/method_channel/method_channel_query.dart +++ b/packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/method_channel/method_channel_query.dart @@ -164,8 +164,6 @@ class MethodChannelQuery extends QueryPlatform { onError: convertPlatformException, ).listen( (snapshot) { - print('documentChanges. MethodChannelQuery snapshots onListen'); - controller.add(MethodChannelQuerySnapshot(firestore, snapshot)); }, onError: controller.addError, @@ -210,9 +208,6 @@ class MethodChannelQuery extends QueryPlatform { onError: convertPlatformException, ).listen( (snapshotChanges) { - print( - 'documentChanges. MethodChannelQuery snapshotChanges onListen'); - controller.add( MethodChannelQuerySnapshotChanges(firestore, snapshotChanges)); }, diff --git a/packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/method_channel/method_channel_query_snapshot.dart b/packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/method_channel/method_channel_query_snapshot.dart index 17c5532e76e6..4d25babc2e17 100644 --- a/packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/method_channel/method_channel_query_snapshot.dart +++ b/packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/method_channel/method_channel_query_snapshot.dart @@ -4,7 +4,6 @@ // BSD-style license that can be found in the LICENSE file. import 'package:cloud_firestore_platform_interface/cloud_firestore_platform_interface.dart'; -import 'package:flutter/material.dart'; import 'method_channel_document_change.dart'; @@ -40,7 +39,5 @@ class MethodChannelQuerySnapshot extends QuerySnapshotPlatform { SnapshotMetadataPlatform( data['metadata']['hasPendingWrites'], data['metadata']['isFromCache'], - )) { - debugPrint('documentChanges. MethodChannelQuerySnapshot called'); - } + )); } diff --git a/packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/method_channel/method_channel_query_snapshot_changes.dart b/packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/method_channel/method_channel_query_snapshot_changes.dart index bbbb123a3a2f..3bb394c538fb 100644 --- a/packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/method_channel/method_channel_query_snapshot_changes.dart +++ b/packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/method_channel/method_channel_query_snapshot_changes.dart @@ -4,7 +4,6 @@ // BSD-style license that can be found in the LICENSE file. import 'package:cloud_firestore_platform_interface/cloud_firestore_platform_interface.dart'; -import 'package:flutter/material.dart'; import 'method_channel_document_change.dart'; @@ -25,7 +24,5 @@ class MethodChannelQuerySnapshotChanges extends QuerySnapshotChangesPlatform { SnapshotMetadataPlatform( data['metadata']['hasPendingWrites'], data['metadata']['isFromCache'], - )) { - debugPrint('documentChanges. MethodChannelQuerySnapshot called'); - } + )); } diff --git a/packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/method_channel/utils/firestore_message_codec.dart b/packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/method_channel/utils/firestore_message_codec.dart index fa94001c68d8..e0a4e8b226ad 100644 --- a/packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/method_channel/utils/firestore_message_codec.dart +++ b/packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/method_channel/utils/firestore_message_codec.dart @@ -75,8 +75,6 @@ class FirestoreMessageCodec extends StandardMessageCodec { } else if (value is DocumentReferencePlatform) { buffer.putUint8(_kDocumentReference); - debugPrint('firestore_message_codec calling writeValue 1'); - writeValue(buffer, value.firestore); writeValue(buffer, value.path); } else if (value is Blob) { @@ -88,7 +86,6 @@ class FirestoreMessageCodec extends StandardMessageCodec { final int code = _kFieldValueCodes[delegate.type]!; buffer.putUint8(code); if (delegate.value != null) { - debugPrint('firestore_message_codec calling writeValue 2'); writeValue(buffer, delegate.value); } } else if (value is FieldPathType) { @@ -98,18 +95,14 @@ class FirestoreMessageCodec extends StandardMessageCodec { buffer.putUint8(_kFieldPath); writeSize(buffer, value.components.length); for (final String item in value.components) { - debugPrint('firestore_message_codec calling writeValue 3'); writeValue(buffer, item); } } else if (value is MethodChannelFirebaseFirestore) { buffer.putUint8(_kFirestoreInstance); - debugPrint('firestore_message_codec calling writeValue 4'); writeValue(buffer, value.app.name); - debugPrint('firestore_message_codec calling writeValue 5'); writeValue(buffer, value.settings); } else if (value is MethodChannelQuery) { buffer.putUint8(_kFirestoreQuery); - debugPrint('firestore_message_codec calling writeValue 6'); writeValue(buffer, { 'firestore': value.firestore, 'path': value.path, @@ -118,10 +111,8 @@ class FirestoreMessageCodec extends StandardMessageCodec { }); } else if (value is Settings) { buffer.putUint8(_kFirestoreSettings); - debugPrint('firestore_message_codec calling writeValue 7'); writeValue(buffer, value.asMap); } else if (value is Iterable && value is! List) { - debugPrint('firestore_message_codec calling writeValue 8'); super.writeValue(buffer, value.toList()); } else if (value == double.nan) { buffer.putUint8(_kNaN); @@ -130,7 +121,6 @@ class FirestoreMessageCodec extends StandardMessageCodec { } else if (value == double.negativeInfinity) { buffer.putUint8(_kNegativeInfinity); } else { - debugPrint('firestore_message_codec calling writeValue 9'); super.writeValue(buffer, value); } } diff --git a/packages/firebase_core/firebase_core/android/src/main/java/io/flutter/plugins/firebase/core/GeneratedAndroidFirebaseCore.java b/packages/firebase_core/firebase_core/android/src/main/java/io/flutter/plugins/firebase/core/GeneratedAndroidFirebaseCore.java index 1acc6a09f962..d3f4b5ed3b83 100644 --- a/packages/firebase_core/firebase_core/android/src/main/java/io/flutter/plugins/firebase/core/GeneratedAndroidFirebaseCore.java +++ b/packages/firebase_core/firebase_core/android/src/main/java/io/flutter/plugins/firebase/core/GeneratedAndroidFirebaseCore.java @@ -502,7 +502,6 @@ protected Object readValueOfType(byte type, ByteBuffer buffer) { @Override protected void writeValue(ByteArrayOutputStream stream, Object value) { - Log.d("Ben_snapshot", "GeneratedAndroidFirebaseCore. writeValue"); if (value instanceof PigeonFirebaseOptions) { stream.write(128); writeValue(stream, ((PigeonFirebaseOptions) value).toMap()); diff --git a/packages/firebase_core/firebase_core_platform_interface/lib/src/pigeon/messages.pigeon.dart b/packages/firebase_core/firebase_core_platform_interface/lib/src/pigeon/messages.pigeon.dart index 563001023790..fce5109078ef 100644 --- a/packages/firebase_core/firebase_core_platform_interface/lib/src/pigeon/messages.pigeon.dart +++ b/packages/firebase_core/firebase_core_platform_interface/lib/src/pigeon/messages.pigeon.dart @@ -9,7 +9,6 @@ import 'dart:async'; import 'dart:typed_data' show Uint8List, Int32List, Int64List, Float64List; -import 'package:flutter/foundation.dart'; import 'package:flutter/services.dart'; class PigeonFirebaseOptions { @@ -125,8 +124,6 @@ class _FirebaseCoreHostApiCodec extends StandardMessageCodec { const _FirebaseCoreHostApiCodec(); @override void writeValue(WriteBuffer buffer, Object? value) { - debugPrint('messages.pigeon.dart writeValue '); - if (value is PigeonFirebaseOptions) { buffer.putUint8(128); writeValue(buffer, value.encode()); From 12453f72a1d058b7ddb56da4829cd5a1297a67bb Mon Sep 17 00:00:00 2001 From: Ben White Date: Mon, 22 May 2023 16:25:14 -0500 Subject: [PATCH 12/18] code cleanup --- .../cloud_firestore/android/build.gradle | 26 ++----------------- .../DocumentSnapshotsStreamHandler.java | 4 --- .../QuerySnapshotsStreamHandler.java | 7 ----- .../TransactionStreamHandler.java | 5 ---- .../cloud_firestore/lib/src/transaction.dart | 7 ----- .../method_channel_transaction.dart | 5 ---- .../utils/firestore_message_codec.dart | 5 +--- 7 files changed, 3 insertions(+), 56 deletions(-) diff --git a/packages/cloud_firestore/cloud_firestore/android/build.gradle b/packages/cloud_firestore/cloud_firestore/android/build.gradle index eed14afecb7b..1a9ad00120b8 100755 --- a/packages/cloud_firestore/cloud_firestore/android/build.gradle +++ b/packages/cloud_firestore/cloud_firestore/android/build.gradle @@ -1,25 +1,9 @@ group 'io.flutter.plugins.firebase.cloudfirestore' version '1.0-SNAPSHOT' -repositories { - mavenLocal() - flatDir{ - dirs '/Users/bwhite/.M2/repository' - } - maven{ - url '/Users/bwhite/.M2/repository' - } -} - buildscript { repositories { mavenLocal() - flatDir{ - dirs '/Users/bwhite/.M2/repository' - } - maven{ - url '/Users/bwhite/.M2/repository' - } google() mavenCentral() } @@ -32,12 +16,6 @@ buildscript { allprojects { repositories { mavenLocal() - flatDir{ - dirs '/Users/bwhite/.M2/repository' - } - maven{ - url '/Users/bwhite/.M2/repository' - } google() mavenCentral() } @@ -74,8 +52,8 @@ android { dependencies { api firebaseCoreProject implementation platform("com.google.firebase:firebase-bom:${getRootProjectExtOrCoreProperty("FirebaseSDKVersion", firebaseCoreProject)}") -// implementation 'com.google.firebase:firebase-firestore' - implementation 'com.google.firebase:firebase-firestore:24.6.1' + implementation 'com.google.firebase:firebase-firestore' +// implementation 'com.google.firebase:firebase-firestore:24.6.1' implementation 'androidx.annotation:annotation:1.2.0' } } diff --git a/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/streamhandler/DocumentSnapshotsStreamHandler.java b/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/streamhandler/DocumentSnapshotsStreamHandler.java index 08a9f2d5a4ce..6edeaa23ca2c 100644 --- a/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/streamhandler/DocumentSnapshotsStreamHandler.java +++ b/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/streamhandler/DocumentSnapshotsStreamHandler.java @@ -35,10 +35,6 @@ public void onListen(Object arguments, EventSink events) { DocumentReference documentReference = (DocumentReference) Objects.requireNonNull(argumentsMap.get("reference")); - Log.w( - "DocumentSnapshotsStreamHandler", - "Entered OnListen"); - listenerRegistration = documentReference.addSnapshotListener( metadataChanges, diff --git a/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/streamhandler/QuerySnapshotsStreamHandler.java b/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/streamhandler/QuerySnapshotsStreamHandler.java index 6cd63d8ddf24..23bd6d0c908d 100644 --- a/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/streamhandler/QuerySnapshotsStreamHandler.java +++ b/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/streamhandler/QuerySnapshotsStreamHandler.java @@ -45,10 +45,6 @@ public void onListen(Object arguments, EventSink events) { "An error occurred while parsing query arguments, see native logs for more information. Please report this issue."); } - Log.w( - "QuerySnapshotsStreamHandler", - "Entered OnListen"); - listenerRegistration = query.addSnapshotListener( metadataChanges, @@ -68,9 +64,6 @@ public void onListen(Object arguments, EventSink events) { FlutterFirebaseFirestorePlugin.serverTimestampBehaviorHashMap.put( querySnapshot.hashCode(), serverTimestampBehavior); } - Log.w( - "QuerySnapshotsStreamHandler", - "addSnapshotListener calling events.success"); events.success(querySnapshot); } diff --git a/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/streamhandler/TransactionStreamHandler.java b/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/streamhandler/TransactionStreamHandler.java index 466b8e5a02c2..ffc9220f6f11 100644 --- a/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/streamhandler/TransactionStreamHandler.java +++ b/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/streamhandler/TransactionStreamHandler.java @@ -6,7 +6,6 @@ package io.flutter.plugins.firebase.firestore.streamhandler; -import android.util.Log; import android.os.Handler; import android.os.Looper; import androidx.annotation.Nullable; @@ -48,7 +47,6 @@ public TransactionStreamHandler(OnTransactionStartedListener onTransactionStarte @Override public void onListen(Object arguments, EventSink events) { - @SuppressWarnings("unchecked") Map argumentsMap = (Map) arguments; @@ -69,7 +67,6 @@ public void onListen(Object arguments, EventSink events) { // Always sent by the PlatformChannel int maxAttempts = (int) argumentsMap.get("maxAttempts"); - firestore .runTransaction( new TransactionOptions.Builder().setMaxAttempts(maxAttempts).build(), @@ -91,11 +88,9 @@ public void onListen(Object arguments, EventSink events) { new FirebaseFirestoreException("interrupted", Code.DEADLINE_EXCEEDED)); } - if (response.isEmpty()) { return FlutterFirebaseFirestoreTransactionResult.complete(); } - final String resultType = (String) response.get("type"); if ("ERROR".equalsIgnoreCase(resultType)) { diff --git a/packages/cloud_firestore/cloud_firestore/lib/src/transaction.dart b/packages/cloud_firestore/cloud_firestore/lib/src/transaction.dart index f7e379d99ed6..9de2fc9df6ad 100644 --- a/packages/cloud_firestore/cloud_firestore/lib/src/transaction.dart +++ b/packages/cloud_firestore/cloud_firestore/lib/src/transaction.dart @@ -24,7 +24,6 @@ class Transaction { Future> get( DocumentReference documentReference, ) async { - print('transaction get path: ${documentReference.path}'); DocumentSnapshotPlatform documentSnapshotPlatform = await _delegate.get(documentReference.path); @@ -38,8 +37,6 @@ class Transaction { final withConverterDocRef = documentReference as _WithConverterDocumentReference; - print('transaction get returning'); - return _WithConverterDocumentSnapshot( snapshot, withConverterDocRef._fromFirestore, @@ -71,8 +68,6 @@ class Transaction { 'the document provided is from a different Firestore instance', ); - print('transaction update path: ${documentReference.path}'); - return Transaction._( _firestore, _delegate.update( @@ -104,8 +99,6 @@ class Transaction { firestoreData = withConverterDoc._toFirestore(data, options); } - print('transaction set path: ${documentReference.path}'); - return Transaction._( _firestore, _delegate.set( diff --git a/packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/method_channel/method_channel_transaction.dart b/packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/method_channel/method_channel_transaction.dart index bad23c6c1237..177df5a81ae3 100644 --- a/packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/method_channel/method_channel_transaction.dart +++ b/packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/method_channel/method_channel_transaction.dart @@ -43,8 +43,6 @@ class MethodChannelTransaction extends TransactionPlatform { assert(_commands.isEmpty, 'Transactions require all reads to be executed before all writes.'); - print('MethodChannelTransaction calling Transaction#get'); - final Map? result = await MethodChannelFirebaseFirestore .channel .invokeMapMethod('Transaction#get', { @@ -53,9 +51,6 @@ class MethodChannelTransaction extends TransactionPlatform { 'reference': _firestore.doc(documentPath), }); - print( - 'MethodChannelTransaction Transaction#get returned: ${result.toString()}'); - return DocumentSnapshotPlatform( _firestore, documentPath, diff --git a/packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/method_channel/utils/firestore_message_codec.dart b/packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/method_channel/utils/firestore_message_codec.dart index e0a4e8b226ad..658bdda3f4b7 100644 --- a/packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/method_channel/utils/firestore_message_codec.dart +++ b/packages/cloud_firestore/cloud_firestore_platform_interface/lib/src/method_channel/utils/firestore_message_codec.dart @@ -74,7 +74,6 @@ class FirestoreMessageCodec extends StandardMessageCodec { buffer.putFloat64(value.longitude); } else if (value is DocumentReferencePlatform) { buffer.putUint8(_kDocumentReference); - writeValue(buffer, value.firestore); writeValue(buffer, value.path); } else if (value is Blob) { @@ -85,9 +84,7 @@ class FirestoreMessageCodec extends StandardMessageCodec { MethodChannelFieldValue delegate = FieldValuePlatform.getDelegate(value); final int code = _kFieldValueCodes[delegate.type]!; buffer.putUint8(code); - if (delegate.value != null) { - writeValue(buffer, delegate.value); - } + if (delegate.value != null) writeValue(buffer, delegate.value); } else if (value is FieldPathType) { final int code = _kFieldPathCodes[value]!; buffer.putUint8(code); From 35beb5a168ed34214c2fe8ce38654b0a3c5c80d6 Mon Sep 17 00:00:00 2001 From: Ben White Date: Mon, 22 May 2023 17:02:43 -0500 Subject: [PATCH 13/18] putting most paths back to versions --- packages/_flutterfire_internals/pubspec.yaml | 6 ++---- .../cloud_firestore/pubspec.yaml | 16 ++++++++-------- .../pubspec.yaml | 9 +++------ .../cloud_firestore_web/pubspec.yaml | 15 +++++---------- .../cloud_functions/pubspec.yaml | 12 ++++-------- .../pubspec.yaml | 6 ++---- .../cloud_functions_web/pubspec.yaml | 12 ++++-------- .../firebase_analytics/pubspec.yaml | 12 ++++-------- .../pubspec.yaml | 8 +++----- .../firebase_analytics_web/pubspec.yaml | 12 ++++-------- .../firebase_app_check/pubspec.yaml | 13 ++++--------- .../pubspec.yaml | 9 +++------ .../firebase_app_check_web/pubspec.yaml | 18 ++++++------------ .../firebase_app_installations/pubspec.yaml | 12 ++++-------- .../pubspec.yaml | 9 +++------ .../pubspec.yaml | 15 +++++---------- .../firebase_auth/firebase_auth/pubspec.yaml | 13 ++++--------- .../pubspec.yaml | 9 +++------ .../firebase_auth_web/pubspec.yaml | 15 +++++---------- .../firebase_core/firebase_core/pubspec.yaml | 6 ++---- .../firebase_core_web/pubspec.yaml | 6 ++---- .../firebase_crashlytics/pubspec.yaml | 9 +++------ .../pubspec.yaml | 9 +++------ .../firebase_messaging/pubspec.yaml | 12 ++++-------- .../pubspec.yaml | 9 +++------ .../firebase_messaging_web/pubspec.yaml | 15 +++++---------- .../firebase_performance/pubspec.yaml | 12 ++++-------- .../pubspec.yaml | 9 +++------ .../firebase_performance_web/pubspec.yaml | 12 ++++-------- 29 files changed, 109 insertions(+), 211 deletions(-) diff --git a/packages/_flutterfire_internals/pubspec.yaml b/packages/_flutterfire_internals/pubspec.yaml index ae5a6e7ca990..4372edab1c2d 100755 --- a/packages/_flutterfire_internals/pubspec.yaml +++ b/packages/_flutterfire_internals/pubspec.yaml @@ -10,10 +10,8 @@ environment: dependencies: collection: ^1.0.0 - firebase_core: - path: ../firebase_core/firebase_core - firebase_core_platform_interface: - path: ../firebase_core/firebase_core_platform_interface + firebase_core: ^2.10.0 + firebase_core_platform_interface: ^4.6.0 flutter: sdk: flutter meta: ^1.3.0 diff --git a/packages/cloud_firestore/cloud_firestore/pubspec.yaml b/packages/cloud_firestore/cloud_firestore/pubspec.yaml index caaca27d6b0b..db2a8bb3e109 100755 --- a/packages/cloud_firestore/cloud_firestore/pubspec.yaml +++ b/packages/cloud_firestore/cloud_firestore/pubspec.yaml @@ -15,16 +15,16 @@ environment: flutter: ">=1.12.13+hotfix.5" dependencies: - cloud_firestore_platform_interface: - path: ../cloud_firestore_platform_interface - cloud_firestore_web: - path: ../cloud_firestore_web + git: + url: https://github.com/bswhite1/flutterfire.git + path: packages/cloud_firestore/cloud_firestore_platform_interface + ref: snapshot_changes_git_paths + + cloud_firestore_web: ^3.4.2 collection: ^1.0.0 - firebase_core: - path: ../../firebase_core/firebase_core - firebase_core_platform_interface: - path: ../../firebase_core/firebase_core_platform_interface + firebase_core: ^2.10.0 + firebase_core_platform_interface: ^4.6.0 flutter: sdk: flutter diff --git a/packages/cloud_firestore/cloud_firestore_platform_interface/pubspec.yaml b/packages/cloud_firestore/cloud_firestore_platform_interface/pubspec.yaml index 91737407265d..38fddedf820f 100644 --- a/packages/cloud_firestore/cloud_firestore_platform_interface/pubspec.yaml +++ b/packages/cloud_firestore/cloud_firestore_platform_interface/pubspec.yaml @@ -9,19 +9,16 @@ environment: flutter: '>=1.9.1+hotfix.5' dependencies: - _flutterfire_internals: - path: ../../_flutterfire_internals + _flutterfire_internals: ^1.1.1 collection: ^1.15.0 - firebase_core: - path: ../../firebase_core/firebase_core + firebase_core: ^2.10.0 flutter: sdk: flutter meta: ^1.3.0 plugin_platform_interface: ^2.1.3 dev_dependencies: - firebase_core_platform_interface: - path: ../../firebase_core/firebase_core_platform_interface + firebase_core_platform_interface: ^4.6.0 flutter_test: sdk: flutter mockito: ^5.0.0 diff --git a/packages/cloud_firestore/cloud_firestore_web/pubspec.yaml b/packages/cloud_firestore/cloud_firestore_web/pubspec.yaml index 3ccf59a43ced..c7c2946020f3 100644 --- a/packages/cloud_firestore/cloud_firestore_web/pubspec.yaml +++ b/packages/cloud_firestore/cloud_firestore_web/pubspec.yaml @@ -11,15 +11,11 @@ environment: dependencies: - _flutterfire_internals: - path: ../../_flutterfire_internals - cloud_firestore_platform_interface: - path: ../cloud_firestore_platform_interface + _flutterfire_internals: ^1.1.1 + cloud_firestore_platform_interface: ^5.12.1 collection: ^1.0.0 - firebase_core: - path: ../../firebase_core/firebase_core - firebase_core_web: - path: ../../firebase_core/firebase_core_web + firebase_core: ^2.10.0 + firebase_core_web: ^2.3.0 flutter: sdk: flutter flutter_web_plugins: @@ -27,8 +23,7 @@ dependencies: js: ^0.6.3 dev_dependencies: - firebase_core_platform_interface: - path: ../../firebase_core/firebase_core_platform_interface + firebase_core_platform_interface: ^4.6.0 flutter_test: sdk: flutter mockito: ^5.0.0 diff --git a/packages/cloud_functions/cloud_functions/pubspec.yaml b/packages/cloud_functions/cloud_functions/pubspec.yaml index fcabcc746602..51bd4ce91b04 100644 --- a/packages/cloud_functions/cloud_functions/pubspec.yaml +++ b/packages/cloud_functions/cloud_functions/pubspec.yaml @@ -12,14 +12,10 @@ environment: flutter: '>=1.12.13+hotfix.5' dependencies: - cloud_functions_platform_interface: - path: ../cloud_functions_platform_interface - cloud_functions_web: - path: ../cloud_functions_web - firebase_core: - path: ../../firebase_core/firebase_core - firebase_core_platform_interface: - path: ../../firebase_core/firebase_core_platform_interface + cloud_functions_platform_interface: ^5.2.1 + cloud_functions_web: ^4.4.1 + firebase_core: ^2.10.0 + firebase_core_platform_interface: ^4.6.0 flutter: sdk: flutter diff --git a/packages/cloud_functions/cloud_functions_platform_interface/pubspec.yaml b/packages/cloud_functions/cloud_functions_platform_interface/pubspec.yaml index ed3ed3ef492e..45bbb3335fc7 100644 --- a/packages/cloud_functions/cloud_functions_platform_interface/pubspec.yaml +++ b/packages/cloud_functions/cloud_functions_platform_interface/pubspec.yaml @@ -12,16 +12,14 @@ environment: flutter: '>=1.9.1+hotfix.5' dependencies: - firebase_core: - path: ../../firebase_core/firebase_core + firebase_core: ^2.10.0 flutter: sdk: flutter meta: ^1.3.0 plugin_platform_interface: ^2.1.3 dev_dependencies: - firebase_core_platform_interface: - path: ../../firebase_core/firebase_core_platform_interface + firebase_core_platform_interface: ^4.6.0 flutter_test: sdk: flutter mockito: ^5.0.0 diff --git a/packages/cloud_functions/cloud_functions_web/pubspec.yaml b/packages/cloud_functions/cloud_functions_web/pubspec.yaml index d3d689c8a21c..4fcb2f248a5a 100644 --- a/packages/cloud_functions/cloud_functions_web/pubspec.yaml +++ b/packages/cloud_functions/cloud_functions_web/pubspec.yaml @@ -10,12 +10,9 @@ environment: flutter: '>=1.20.0' dependencies: - cloud_functions_platform_interface: - path: ../cloud_functions_platform_interface - firebase_core: - path: ../../firebase_core/firebase_core - firebase_core_web: - path: ../../firebase_core/firebase_core_web + cloud_functions_platform_interface: ^5.2.1 + firebase_core: ^2.10.0 + firebase_core_web: ^2.3.0 flutter: sdk: flutter flutter_web_plugins: @@ -23,8 +20,7 @@ dependencies: js: ^0.6.3 dev_dependencies: - firebase_core_platform_interface: - path: ../../firebase_core/firebase_core_platform_interface + firebase_core_platform_interface: ^4.6.0 flutter_test: sdk: flutter mockito: ^5.0.0 diff --git a/packages/firebase_analytics/firebase_analytics/pubspec.yaml b/packages/firebase_analytics/firebase_analytics/pubspec.yaml index 82a5aacbc936..742cc4c0a075 100755 --- a/packages/firebase_analytics/firebase_analytics/pubspec.yaml +++ b/packages/firebase_analytics/firebase_analytics/pubspec.yaml @@ -14,14 +14,10 @@ environment: flutter: '>=1.12.13+hotfix.5' dependencies: - firebase_analytics_platform_interface: - path: ../firebase_analytics_platform_interface - firebase_analytics_web: - path: ../firebase_analytics_web - firebase_core: - path: ../../firebase_core/firebase_core - firebase_core_platform_interface: - path: ../../firebase_core/firebase_core_platform_interface + firebase_analytics_platform_interface: ^3.4.1 + firebase_analytics_web: ^0.5.2+1 + firebase_core: ^2.10.0 + firebase_core_platform_interface: ^4.6.0 flutter: sdk: flutter diff --git a/packages/firebase_analytics/firebase_analytics_platform_interface/pubspec.yaml b/packages/firebase_analytics/firebase_analytics_platform_interface/pubspec.yaml index 80b8bc07b4b4..0c036a4fd139 100644 --- a/packages/firebase_analytics/firebase_analytics_platform_interface/pubspec.yaml +++ b/packages/firebase_analytics/firebase_analytics_platform_interface/pubspec.yaml @@ -11,9 +11,8 @@ environment: dependencies: _flutterfire_internals: - path: ../../_flutterfire_internals - firebase_core: - path: ../../firebase_core/firebase_core + _flutterfire_internals: ^1.1.1 + firebase_core: ^2.10.0 flutter: sdk: flutter @@ -21,7 +20,6 @@ dependencies: plugin_platform_interface: ^2.1.3 dev_dependencies: - firebase_core_platform_interface: - path: ../../firebase_core/firebase_core_platform_interface + firebase_core_platform_interface: ^4.6.0 flutter_test: sdk: flutter diff --git a/packages/firebase_analytics/firebase_analytics_web/pubspec.yaml b/packages/firebase_analytics/firebase_analytics_web/pubspec.yaml index 91a9175ed5b4..afb82fa19128 100644 --- a/packages/firebase_analytics/firebase_analytics_web/pubspec.yaml +++ b/packages/firebase_analytics/firebase_analytics_web/pubspec.yaml @@ -9,14 +9,10 @@ environment: flutter: '>=1.20.0' dependencies: - _flutterfire_internals: - path: ../../_flutterfire_internals - firebase_analytics_platform_interface: - path: ../firebase_analytics_platform_interface - firebase_core: - path: ../../firebase_core/firebase_core - firebase_core_web: - path: ../../firebase_core/firebase_core_web + _flutterfire_internals: ^1.1.1 + firebase_analytics_platform_interface: ^3.4.1 + firebase_core: ^2.10.0 + firebase_core_web: ^2.3.0 flutter: sdk: flutter diff --git a/packages/firebase_app_check/firebase_app_check/pubspec.yaml b/packages/firebase_app_check/firebase_app_check/pubspec.yaml index 5d9185945a5d..1260ebf4844b 100644 --- a/packages/firebase_app_check/firebase_app_check/pubspec.yaml +++ b/packages/firebase_app_check/firebase_app_check/pubspec.yaml @@ -12,15 +12,10 @@ environment: flutter: '>=1.20.0' dependencies: - - firebase_app_check_platform_interface: - path: ../firebase_app_check_platform_interface - firebase_app_check_web: - path: ../firebase_app_check_web - firebase_core: - path: ../../firebase_core/firebase_core - firebase_core_platform_interface: - path: ../../firebase_core/firebase_core_platform_interface + firebase_app_check_platform_interface: ^0.0.6+2 + firebase_app_check_web: ^0.0.8+2 + firebase_core: ^2.10.0 + firebase_core_platform_interface: ^4.6.0 flutter: sdk: flutter diff --git a/packages/firebase_app_check/firebase_app_check_platform_interface/pubspec.yaml b/packages/firebase_app_check/firebase_app_check_platform_interface/pubspec.yaml index 3cbfe52e8db0..acbd4614f427 100644 --- a/packages/firebase_app_check/firebase_app_check_platform_interface/pubspec.yaml +++ b/packages/firebase_app_check/firebase_app_check_platform_interface/pubspec.yaml @@ -8,18 +8,15 @@ environment: flutter: '>=1.20.0' dependencies: - _flutterfire_internals: - path: ../../_flutterfire_internals - firebase_core: - path: ../../firebase_core/firebase_core + _flutterfire_internals: ^1.1.1 + firebase_core: ^2.10.0 flutter: sdk: flutter meta: ^1.3.0 plugin_platform_interface: ^2.1.3 dev_dependencies: - firebase_core_platform_interface: - path: ../../firebase_core/firebase_core_platform_interface + firebase_core_platform_interface: ^4.6.0 flutter_test: sdk: flutter mockito: ^5.0.0 diff --git a/packages/firebase_app_check/firebase_app_check_web/pubspec.yaml b/packages/firebase_app_check/firebase_app_check_web/pubspec.yaml index 4b401edd721d..0189d9ff666d 100644 --- a/packages/firebase_app_check/firebase_app_check_web/pubspec.yaml +++ b/packages/firebase_app_check/firebase_app_check_web/pubspec.yaml @@ -8,14 +8,10 @@ environment: flutter: '>=1.20.0' dependencies: - _flutterfire_internals: - path: ../../_flutterfire_internals - firebase_app_check_platform_interface: - path: ../firebase_app_check_platform_interface - firebase_core: - path: ../../firebase_core/firebase_core - firebase_core_web: - path: ../../firebase_core/firebase_core_web + _flutterfire_internals: ^1.1.1 + firebase_app_check_platform_interface: ^0.0.6+2 + firebase_core: ^2.10.0 + firebase_core_web: ^2.3.0 flutter: sdk: flutter flutter_web_plugins: @@ -23,10 +19,8 @@ dependencies: js: ^0.6.3 dev_dependencies: - firebase_app_check: - path: ../firebase_app_check - firebase_core_platform_interface: - path: ../../firebase_core/firebase_core_platform_interface + firebase_app_check: ^0.1.2+3 + firebase_core_platform_interface: ^4.6.0 flutter_test: sdk: flutter mockito: ^5.0.0 diff --git a/packages/firebase_app_installations/firebase_app_installations/pubspec.yaml b/packages/firebase_app_installations/firebase_app_installations/pubspec.yaml index 5daecab8b224..443437cf378d 100644 --- a/packages/firebase_app_installations/firebase_app_installations/pubspec.yaml +++ b/packages/firebase_app_installations/firebase_app_installations/pubspec.yaml @@ -13,14 +13,10 @@ environment: flutter: '>=1.20.0' dependencies: - firebase_app_installations_platform_interface: - path: ../firebase_app_installations_platform_interface - firebase_app_installations_web: - path: ../firebase_app_installations_web - firebase_core: - path: ../../firebase_core/firebase_core - firebase_core_platform_interface: - path: ../../firebase_core/firebase_core_platform_interface + firebase_app_installations_platform_interface: ^0.1.2+1 + firebase_app_installations_web: ^0.1.2+1 + firebase_core: ^2.10.0 + firebase_core_platform_interface: ^4.6.0 flutter: sdk: flutter diff --git a/packages/firebase_app_installations/firebase_app_installations_platform_interface/pubspec.yaml b/packages/firebase_app_installations/firebase_app_installations_platform_interface/pubspec.yaml index b3335a04cc8e..613dbb0469fc 100644 --- a/packages/firebase_app_installations/firebase_app_installations_platform_interface/pubspec.yaml +++ b/packages/firebase_app_installations/firebase_app_installations_platform_interface/pubspec.yaml @@ -9,18 +9,15 @@ environment: flutter: '>=1.17.0' dependencies: - _flutterfire_internals: - path: ../../_flutterfire_internals - firebase_core: - path: ../../firebase_core/firebase_core + _flutterfire_internals: ^1.1.1 + firebase_core: ^2.10.0 flutter: sdk: flutter meta: ^1.3.0 plugin_platform_interface: ^2.1.3 dev_dependencies: - firebase_core_platform_interface: - path: ../../firebase_core/firebase_core_platform_interface + firebase_core_platform_interface: ^4.6.0 flutter_test: sdk: flutter flutter_lints: ^1.0.0 diff --git a/packages/firebase_app_installations/firebase_app_installations_web/pubspec.yaml b/packages/firebase_app_installations/firebase_app_installations_web/pubspec.yaml index 7c8e7eb550b3..090500758aa7 100644 --- a/packages/firebase_app_installations/firebase_app_installations_web/pubspec.yaml +++ b/packages/firebase_app_installations/firebase_app_installations_web/pubspec.yaml @@ -9,14 +9,10 @@ environment: flutter: '>=1.20.0' dependencies: - _flutterfire_internals: - path: ../../_flutterfire_internals - firebase_app_installations_platform_interface: - path: ../firebase_app_installations_platform_interface - firebase_core: - path: ../../firebase_core/firebase_core - firebase_core_web: - path: ../../firebase_core/firebase_core_web + _flutterfire_internals: ^1.1.1 + firebase_app_installations_platform_interface: ^0.1.2+1 + firebase_core: ^2.10.0 + firebase_core_web: ^2.3.0 flutter: sdk: flutter flutter_web_plugins: @@ -24,8 +20,7 @@ dependencies: js: ^0.6.3 dev_dependencies: - firebase_core_platform_interface: - path: ../../firebase_core/firebase_core_platform_interface + firebase_core_platform_interface: ^4.6.0 flutter_test: sdk: flutter flutter_lints: ^1.0.0 diff --git a/packages/firebase_auth/firebase_auth/pubspec.yaml b/packages/firebase_auth/firebase_auth/pubspec.yaml index 7e2d25c78309..854824a7ec88 100755 --- a/packages/firebase_auth/firebase_auth/pubspec.yaml +++ b/packages/firebase_auth/firebase_auth/pubspec.yaml @@ -14,15 +14,10 @@ environment: flutter: '>=1.12.13+hotfix.5' dependencies: - - firebase_auth_platform_interface: - path: ../firebase_auth_platform_interface - firebase_auth_web: - path: ../firebase_auth_web - firebase_core: - path: ../../firebase_core/firebase_core - firebase_core_platform_interface: - path: ../../firebase_core/firebase_core_platform_interface + firebase_auth_platform_interface: ^6.13.1 + firebase_auth_web: ^5.3.2 + firebase_core: ^2.10.0 + firebase_core_platform_interface: ^4.6.0 flutter: sdk: flutter diff --git a/packages/firebase_auth/firebase_auth_platform_interface/pubspec.yaml b/packages/firebase_auth/firebase_auth_platform_interface/pubspec.yaml index fb65a689e530..bacca142fdb5 100644 --- a/packages/firebase_auth/firebase_auth_platform_interface/pubspec.yaml +++ b/packages/firebase_auth/firebase_auth_platform_interface/pubspec.yaml @@ -11,19 +11,16 @@ environment: flutter: '>=1.9.1+hotfix.5' dependencies: - _flutterfire_internals: - path: ../../_flutterfire_internals + _flutterfire_internals: ^1.1.1 collection: ^1.16.0 - firebase_core: - path: ../../firebase_core/firebase_core + firebase_core: ^2.10.0 flutter: sdk: flutter meta: ^1.3.0 plugin_platform_interface: ^2.1.3 dev_dependencies: - firebase_core_platform_interface: - path: ../../firebase_core/firebase_core_platform_interface + firebase_core_platform_interface: ^4.6.0 flutter_test: sdk: flutter mockito: ^5.0.0 diff --git a/packages/firebase_auth/firebase_auth_web/pubspec.yaml b/packages/firebase_auth/firebase_auth_web/pubspec.yaml index 6afca7b05259..7fcf2d960cbf 100644 --- a/packages/firebase_auth/firebase_auth_web/pubspec.yaml +++ b/packages/firebase_auth/firebase_auth_web/pubspec.yaml @@ -9,12 +9,9 @@ environment: flutter: '>=1.20.0' dependencies: - firebase_auth_platform_interface: - path: ../../firebase_auth/firebase_auth_platform_interface - firebase_core: - path: ../../firebase_core/firebase_core - firebase_core_web: - path: ../../firebase_core/firebase_core_web + firebase_auth_platform_interface: ^6.13.1 + firebase_core: ^2.10.0 + firebase_core_web: ^2.3.0 flutter: sdk: flutter flutter_web_plugins: @@ -25,10 +22,8 @@ dependencies: meta: ^1.3.0 dev_dependencies: - firebase_auth: - path: ../firebase_auth - firebase_core_platform_interface: - path: ../../firebase_core/firebase_core_platform_interface + firebase_auth: ^4.4.2 + firebase_core_platform_interface: ^4.6.0 flutter_test: sdk: flutter diff --git a/packages/firebase_core/firebase_core/pubspec.yaml b/packages/firebase_core/firebase_core/pubspec.yaml index 0e8690a460e9..bfd4dc6a0144 100644 --- a/packages/firebase_core/firebase_core/pubspec.yaml +++ b/packages/firebase_core/firebase_core/pubspec.yaml @@ -13,10 +13,8 @@ environment: flutter: '>=1.12.13+hotfix.5' dependencies: - firebase_core_platform_interface: - path: ../firebase_core_platform_interface - firebase_core_web: - path: ../firebase_core_web + firebase_core_platform_interface: ^4.6.0 + firebase_core_web: ^2.3.0 flutter: sdk: flutter meta: ^1.3.0 diff --git a/packages/firebase_core/firebase_core_web/pubspec.yaml b/packages/firebase_core/firebase_core_web/pubspec.yaml index 2e804e7134e9..cce44a3faa4d 100644 --- a/packages/firebase_core/firebase_core_web/pubspec.yaml +++ b/packages/firebase_core/firebase_core_web/pubspec.yaml @@ -9,8 +9,7 @@ environment: flutter: '>=1.20.0' dependencies: - firebase_core_platform_interface: - path: ../firebase_core_platform_interface + firebase_core_platform_interface: ^4.6.0 flutter: sdk: flutter flutter_web_plugins: @@ -19,8 +18,7 @@ dependencies: meta: ^1.3.0 dev_dependencies: - firebase_core: - path: ../firebase_core + firebase_core: ^2.10.0 flutter_test: sdk: flutter diff --git a/packages/firebase_crashlytics/firebase_crashlytics/pubspec.yaml b/packages/firebase_crashlytics/firebase_crashlytics/pubspec.yaml index 640d2731cf80..78c3fae332e8 100644 --- a/packages/firebase_crashlytics/firebase_crashlytics/pubspec.yaml +++ b/packages/firebase_crashlytics/firebase_crashlytics/pubspec.yaml @@ -14,12 +14,9 @@ environment: flutter: '>=1.12.13+hotfix.5' dependencies: - firebase_core: - path: ../../firebase_core/firebase_core - firebase_core_platform_interface: - path: ../../firebase_core/firebase_core_platform_interface - firebase_crashlytics_platform_interface: - path: ../firebase_crashlytics_platform_interface + firebase_core: ^2.10.0 + firebase_core_platform_interface: ^4.6.0 + firebase_crashlytics_platform_interface: ^3.4.1 flutter: sdk: flutter stack_trace: ^1.10.0 diff --git a/packages/firebase_crashlytics/firebase_crashlytics_platform_interface/pubspec.yaml b/packages/firebase_crashlytics/firebase_crashlytics_platform_interface/pubspec.yaml index ada3733e1e62..cb4050744a56 100644 --- a/packages/firebase_crashlytics/firebase_crashlytics_platform_interface/pubspec.yaml +++ b/packages/firebase_crashlytics/firebase_crashlytics_platform_interface/pubspec.yaml @@ -9,19 +9,16 @@ environment: flutter: '>=1.12.13+hotfix.5' dependencies: - _flutterfire_internals: - path: ../../_flutterfire_internals + _flutterfire_internals: ^1.1.1 collection: ^1.15.0 - firebase_core: - path: ../../firebase_core/firebase_core + firebase_core: ^2.10.0 flutter: sdk: flutter meta: ^1.3.0 plugin_platform_interface: ^2.1.3 dev_dependencies: - firebase_core_platform_interface: - path: ../../firebase_core/firebase_core_platform_interface + firebase_core_platform_interface: ^4.6.0 flutter_test: sdk: flutter mockito: ^5.0.0 diff --git a/packages/firebase_messaging/firebase_messaging/pubspec.yaml b/packages/firebase_messaging/firebase_messaging/pubspec.yaml index b6d0e4d0cb8b..9c847e2de9e2 100644 --- a/packages/firebase_messaging/firebase_messaging/pubspec.yaml +++ b/packages/firebase_messaging/firebase_messaging/pubspec.yaml @@ -13,14 +13,10 @@ environment: flutter: '>=1.12.13+hotfix.5' dependencies: - firebase_core: - path: ../../firebase_core/firebase_core - firebase_core_platform_interface: - path: ../../firebase_core/firebase_core_platform_interface - firebase_messaging_platform_interface: - path: ../firebase_messaging_platform_interface - firebase_messaging_web: - path: ../firebase_messaging_web + firebase_core: ^2.10.0 + firebase_core_platform_interface: ^4.6.0 + firebase_messaging_platform_interface: ^4.3.1 + firebase_messaging_web: ^3.3.1 flutter: sdk: flutter meta: ^1.3.0 diff --git a/packages/firebase_messaging/firebase_messaging_platform_interface/pubspec.yaml b/packages/firebase_messaging/firebase_messaging_platform_interface/pubspec.yaml index 2d63dbbea055..29674778b7ae 100644 --- a/packages/firebase_messaging/firebase_messaging_platform_interface/pubspec.yaml +++ b/packages/firebase_messaging/firebase_messaging_platform_interface/pubspec.yaml @@ -9,18 +9,15 @@ environment: flutter: '>=1.9.1+hotfix.5' dependencies: - _flutterfire_internals: - path: ../../_flutterfire_internals - firebase_core: - path: ../../firebase_core/firebase_core + _flutterfire_internals: ^1.1.1 + firebase_core: ^2.10.0 flutter: sdk: flutter meta: ^1.3.0 plugin_platform_interface: ^2.1.3 dev_dependencies: - firebase_core_platform_interface: - path: ../../firebase_core/firebase_core_platform_interface + firebase_core_platform_interface: ^4.6.0 flutter_test: sdk: flutter mockito: ^5.0.0 diff --git a/packages/firebase_messaging/firebase_messaging_web/pubspec.yaml b/packages/firebase_messaging/firebase_messaging_web/pubspec.yaml index 1ca99f68e01c..c6a2bd079452 100644 --- a/packages/firebase_messaging/firebase_messaging_web/pubspec.yaml +++ b/packages/firebase_messaging/firebase_messaging_web/pubspec.yaml @@ -9,14 +9,10 @@ environment: flutter: '>=1.20.0' dependencies: - _flutterfire_internals: - path: ../../_flutterfire_internals - firebase_core: - path: ../../firebase_core/firebase_core - firebase_core_web: - path: ../../firebase_core/firebase_core_web - firebase_messaging_platform_interface: - path: ../firebase_messaging_platform_interface + _flutterfire_internals: ^1.1.1 + firebase_core: ^2.10.0 + firebase_core_web: ^2.3.0 + firebase_messaging_platform_interface: ^4.3.1 flutter: sdk: flutter flutter_web_plugins: @@ -25,8 +21,7 @@ dependencies: meta: ^1.3.0 dev_dependencies: - firebase_core_platform_interface: - path: ../../firebase_core/firebase_core_platform_interface + firebase_core_platform_interface: ^4.6.0 flutter_test: sdk: flutter mockito: ^5.0.0 diff --git a/packages/firebase_performance/firebase_performance/pubspec.yaml b/packages/firebase_performance/firebase_performance/pubspec.yaml index 19fa59a3837d..146673750307 100644 --- a/packages/firebase_performance/firebase_performance/pubspec.yaml +++ b/packages/firebase_performance/firebase_performance/pubspec.yaml @@ -15,14 +15,10 @@ environment: flutter: '>=1.12.13+hotfix.5' dependencies: - firebase_core: - path: ../../firebase_core/firebase_core - firebase_core_platform_interface: - path: ../../firebase_core/firebase_core_platform_interface - firebase_performance_platform_interface: - path: ../firebase_performance_platform_interface - firebase_performance_web: - path: ../firebase_performance_web + firebase_core: ^2.10.0 + firebase_core_platform_interface: ^4.6.0 + firebase_performance_platform_interface: ^0.1.2+1 + firebase_performance_web: ^0.1.2+1 flutter: sdk: flutter diff --git a/packages/firebase_performance/firebase_performance_platform_interface/pubspec.yaml b/packages/firebase_performance/firebase_performance_platform_interface/pubspec.yaml index b4419881e53e..be93c7840d28 100644 --- a/packages/firebase_performance/firebase_performance_platform_interface/pubspec.yaml +++ b/packages/firebase_performance/firebase_performance_platform_interface/pubspec.yaml @@ -8,16 +8,13 @@ environment: flutter: '>=1.17.0' dependencies: - _flutterfire_internals: - path: ../../_flutterfire_internals - firebase_core: - path: ../../firebase_core/firebase_core + _flutterfire_internals: ^1.1.1 + firebase_core: ^2.10.0 flutter: sdk: flutter plugin_platform_interface: ^2.1.3 dev_dependencies: - firebase_core_platform_interface: - path: ../../firebase_core/firebase_core_platform_interface + firebase_core_platform_interface: ^4.6.0 flutter_test: sdk: flutter diff --git a/packages/firebase_performance/firebase_performance_web/pubspec.yaml b/packages/firebase_performance/firebase_performance_web/pubspec.yaml index 7b518efd8f31..740c029898a5 100644 --- a/packages/firebase_performance/firebase_performance_web/pubspec.yaml +++ b/packages/firebase_performance/firebase_performance_web/pubspec.yaml @@ -8,14 +8,10 @@ environment: flutter: '>=1.20.0' dependencies: - _flutterfire_internals: - path: ../../_flutterfire_internals - firebase_core: - path: ../../firebase_core/firebase_core - firebase_core_web: - path: ../../firebase_core/firebase_core_web - firebase_performance_platform_interface: - path: ../firebase_performance_platform_interface/ + _flutterfire_internals: ^1.1.1 + firebase_core: ^2.10.0 + firebase_core_web: ^2.3.0 + firebase_performance_platform_interface: ^0.1.2+1 flutter: sdk: flutter flutter_web_plugins: From 1530c899c1755f60a1b773ab1e083b399f7d4ad8 Mon Sep 17 00:00:00 2001 From: Ben White Date: Mon, 22 May 2023 17:07:01 -0500 Subject: [PATCH 14/18] yaml cleanup --- packages/cloud_firestore/cloud_firestore_web/pubspec.yaml | 1 - .../firebase_analytics_platform_interface/pubspec.yaml | 3 --- .../firebase_analytics/firebase_analytics_web/pubspec.yaml | 1 - packages/firebase_app_check/firebase_app_check/pubspec.yaml | 1 - packages/firebase_auth/firebase_auth/pubspec.yaml | 1 - .../lib/src/pigeon/messages.pigeon.dart | 1 + 6 files changed, 1 insertion(+), 7 deletions(-) diff --git a/packages/cloud_firestore/cloud_firestore_web/pubspec.yaml b/packages/cloud_firestore/cloud_firestore_web/pubspec.yaml index c7c2946020f3..ed340ea21d84 100644 --- a/packages/cloud_firestore/cloud_firestore_web/pubspec.yaml +++ b/packages/cloud_firestore/cloud_firestore_web/pubspec.yaml @@ -10,7 +10,6 @@ environment: flutter: '>=1.20.0' dependencies: - _flutterfire_internals: ^1.1.1 cloud_firestore_platform_interface: ^5.12.1 collection: ^1.0.0 diff --git a/packages/firebase_analytics/firebase_analytics_platform_interface/pubspec.yaml b/packages/firebase_analytics/firebase_analytics_platform_interface/pubspec.yaml index 0c036a4fd139..ef16cd6018da 100644 --- a/packages/firebase_analytics/firebase_analytics_platform_interface/pubspec.yaml +++ b/packages/firebase_analytics/firebase_analytics_platform_interface/pubspec.yaml @@ -9,11 +9,8 @@ environment: flutter: '>=1.9.1+hotfix.5' dependencies: - - _flutterfire_internals: _flutterfire_internals: ^1.1.1 firebase_core: ^2.10.0 - flutter: sdk: flutter meta: ^1.3.0 diff --git a/packages/firebase_analytics/firebase_analytics_web/pubspec.yaml b/packages/firebase_analytics/firebase_analytics_web/pubspec.yaml index afb82fa19128..e87fc80bc48c 100644 --- a/packages/firebase_analytics/firebase_analytics_web/pubspec.yaml +++ b/packages/firebase_analytics/firebase_analytics_web/pubspec.yaml @@ -13,7 +13,6 @@ dependencies: firebase_analytics_platform_interface: ^3.4.1 firebase_core: ^2.10.0 firebase_core_web: ^2.3.0 - flutter: sdk: flutter flutter_web_plugins: diff --git a/packages/firebase_app_check/firebase_app_check/pubspec.yaml b/packages/firebase_app_check/firebase_app_check/pubspec.yaml index 1260ebf4844b..4944a6e7fe58 100644 --- a/packages/firebase_app_check/firebase_app_check/pubspec.yaml +++ b/packages/firebase_app_check/firebase_app_check/pubspec.yaml @@ -16,7 +16,6 @@ dependencies: firebase_app_check_web: ^0.0.8+2 firebase_core: ^2.10.0 firebase_core_platform_interface: ^4.6.0 - flutter: sdk: flutter diff --git a/packages/firebase_auth/firebase_auth/pubspec.yaml b/packages/firebase_auth/firebase_auth/pubspec.yaml index 854824a7ec88..d1b1bc22ad43 100755 --- a/packages/firebase_auth/firebase_auth/pubspec.yaml +++ b/packages/firebase_auth/firebase_auth/pubspec.yaml @@ -18,7 +18,6 @@ dependencies: firebase_auth_web: ^5.3.2 firebase_core: ^2.10.0 firebase_core_platform_interface: ^4.6.0 - flutter: sdk: flutter meta: ^1.3.0 diff --git a/packages/firebase_core/firebase_core_platform_interface/lib/src/pigeon/messages.pigeon.dart b/packages/firebase_core/firebase_core_platform_interface/lib/src/pigeon/messages.pigeon.dart index fce5109078ef..9420915342de 100644 --- a/packages/firebase_core/firebase_core_platform_interface/lib/src/pigeon/messages.pigeon.dart +++ b/packages/firebase_core/firebase_core_platform_interface/lib/src/pigeon/messages.pigeon.dart @@ -9,6 +9,7 @@ import 'dart:async'; import 'dart:typed_data' show Uint8List, Int32List, Int64List, Float64List; +import 'package:flutter/foundation.dart' show WriteBuffer, ReadBuffer; import 'package:flutter/services.dart'; class PigeonFirebaseOptions { From 1126baec117dde9e895ba57be04f029c71582009 Mon Sep 17 00:00:00 2001 From: Ben White Date: Mon, 22 May 2023 17:14:46 -0500 Subject: [PATCH 15/18] fixing cloud_firestore_web dependancy --- packages/cloud_firestore/cloud_firestore_web/pubspec.yaml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/cloud_firestore/cloud_firestore_web/pubspec.yaml b/packages/cloud_firestore/cloud_firestore_web/pubspec.yaml index ed340ea21d84..ea5556bed89d 100644 --- a/packages/cloud_firestore/cloud_firestore_web/pubspec.yaml +++ b/packages/cloud_firestore/cloud_firestore_web/pubspec.yaml @@ -11,7 +11,11 @@ environment: dependencies: _flutterfire_internals: ^1.1.1 - cloud_firestore_platform_interface: ^5.12.1 + cloud_firestore_platform_interface: + git: + url: https://github.com/bswhite1/flutterfire.git + path: packages/cloud_firestore/cloud_firestore_platform_interface + ref: snapshot_changes_git_paths collection: ^1.0.0 firebase_core: ^2.10.0 firebase_core_web: ^2.3.0 From 3e29e2c4fe0ed102e522c7423bae7c2460d61297 Mon Sep 17 00:00:00 2001 From: Ben White Date: Mon, 22 May 2023 17:17:00 -0500 Subject: [PATCH 16/18] more dependacy --- packages/cloud_firestore/cloud_firestore/pubspec.yaml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/cloud_firestore/cloud_firestore/pubspec.yaml b/packages/cloud_firestore/cloud_firestore/pubspec.yaml index db2a8bb3e109..4e0a0c6887a5 100755 --- a/packages/cloud_firestore/cloud_firestore/pubspec.yaml +++ b/packages/cloud_firestore/cloud_firestore/pubspec.yaml @@ -21,7 +21,12 @@ dependencies: path: packages/cloud_firestore/cloud_firestore_platform_interface ref: snapshot_changes_git_paths - cloud_firestore_web: ^3.4.2 + cloud_firestore_web: + git: + url: https://github.com/bswhite1/flutterfire.git + path: packages/cloud_firestore/cloud_firestore_web + ref: snapshot_changes_git_paths + collection: ^1.0.0 firebase_core: ^2.10.0 firebase_core_platform_interface: ^4.6.0 From f96a2c7351df2a81b73a1b115ae1a36fd726db29 Mon Sep 17 00:00:00 2001 From: Ben White Date: Tue, 23 May 2023 08:43:31 -0500 Subject: [PATCH 17/18] code cleanup --- .../cloud_firestore/android/build.gradle | 2 -- .../FlutterFirebaseFirestoreMessageCodec.java | 8 +------- .../FlutterFirebaseFirestorePlugin.java | 6 +----- .../DocumentSnapshotsStreamHandler.java | 5 ----- .../streamhandler/QuerySnapshotWrapper.java | 20 +++++++++++++++---- 5 files changed, 18 insertions(+), 23 deletions(-) diff --git a/packages/cloud_firestore/cloud_firestore/android/build.gradle b/packages/cloud_firestore/cloud_firestore/android/build.gradle index 1a9ad00120b8..7cffa56ad292 100755 --- a/packages/cloud_firestore/cloud_firestore/android/build.gradle +++ b/packages/cloud_firestore/cloud_firestore/android/build.gradle @@ -3,7 +3,6 @@ version '1.0-SNAPSHOT' buildscript { repositories { - mavenLocal() google() mavenCentral() } @@ -15,7 +14,6 @@ buildscript { allprojects { repositories { - mavenLocal() google() mavenCentral() } diff --git a/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/FlutterFirebaseFirestoreMessageCodec.java b/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/FlutterFirebaseFirestoreMessageCodec.java index ed026a2dd1e5..a9adf24b950b 100644 --- a/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/FlutterFirebaseFirestoreMessageCodec.java +++ b/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/FlutterFirebaseFirestoreMessageCodec.java @@ -22,6 +22,7 @@ import com.google.firebase.firestore.QuerySnapshot; import com.google.firebase.firestore.SnapshotMetadata; import io.flutter.plugin.common.StandardMessageCodec; +import io.flutter.plugins.firebase.firestore.streamhandler.QuerySnapshotWrapper; import java.io.ByteArrayOutputStream; import java.nio.ByteBuffer; import java.util.ArrayList; @@ -30,9 +31,6 @@ import java.util.List; import java.util.Map; import java.util.Objects; -import android.util.Log; - -import io.flutter.plugins.firebase.firestore.streamhandler.QuerySnapshotWrapper; class FlutterFirebaseFirestoreMessageCodec extends StandardMessageCodec { public static final FlutterFirebaseFirestoreMessageCodec INSTANCE = @@ -145,7 +143,6 @@ private void writeQuerySnapshot(ByteArrayOutputStream stream, QuerySnapshot valu List> documents = new ArrayList<>(); List metadatas = new ArrayList<>(); - DocumentSnapshot.ServerTimestampBehavior serverTimestampBehavior = FlutterFirebaseFirestorePlugin.serverTimestampBehaviorHashMap.get(value.hashCode()); @@ -166,7 +163,6 @@ private void writeQuerySnapshot(ByteArrayOutputStream stream, QuerySnapshot valu querySnapshotMap.put("metadata", value.getMetadata()); FlutterFirebaseFirestorePlugin.serverTimestampBehaviorHashMap.remove(value.hashCode()); - writeValue(stream, querySnapshotMap); } @@ -304,8 +300,6 @@ private FirebaseFirestore readFirestoreInstance(ByteBuffer buffer) { firestore.setFirestoreSettings(settings); -// firestore.setLoggingEnabled(true); - FlutterFirebaseFirestorePlugin.setCachedFirebaseFirestoreInstanceForKey(firestore, appName); return firestore; } diff --git a/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/FlutterFirebaseFirestorePlugin.java b/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/FlutterFirebaseFirestorePlugin.java index e0968a6f057d..c8b3acd7dcef 100644 --- a/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/FlutterFirebaseFirestorePlugin.java +++ b/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/FlutterFirebaseFirestorePlugin.java @@ -4,7 +4,6 @@ package io.flutter.plugins.firebase.firestore; -import android.util.Log; import android.app.Activity; import androidx.annotation.NonNull; import com.google.android.gms.tasks.Task; @@ -186,7 +185,6 @@ private Task enableNetwork(Map arguments) { return taskCompletionSource.getTask(); } - private Task enableDebugging(Map arguments) { TaskCompletionSource taskCompletionSource = new TaskCompletionSource<>(); @@ -254,7 +252,6 @@ private Task transactionGet(Map arguments) { private void transactionStoreResult(Map arguments) { String transactionId = (String) Objects.requireNonNull(arguments.get("transactionId")); - @SuppressWarnings("unchecked") Map result = (Map) Objects.requireNonNull(arguments.get("result")); @@ -633,7 +630,6 @@ public void onMethodCall(MethodCall call, @NonNull final MethodChannel.Result re break; case "Transaction#create": final String transactionId = UUID.randomUUID().toString().toLowerCase(Locale.US); - final TransactionStreamHandler handler = new TransactionStreamHandler( transaction -> transactions.put(transactionId, transaction)); @@ -660,7 +656,7 @@ public void onMethodCall(MethodCall call, @NonNull final MethodChannel.Result re case "Query#snapshotChanges": result.success( registerEventChannel( - METHOD_CHANNEL_NAME + "/query", new QuerySnapshotChangesStreamHandler())); //Ben todo + METHOD_CHANNEL_NAME + "/query", new QuerySnapshotChangesStreamHandler())); return; case "DocumentReference#snapshots": result.success( diff --git a/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/streamhandler/DocumentSnapshotsStreamHandler.java b/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/streamhandler/DocumentSnapshotsStreamHandler.java index 6edeaa23ca2c..1c4c2a80d9eb 100644 --- a/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/streamhandler/DocumentSnapshotsStreamHandler.java +++ b/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/streamhandler/DocumentSnapshotsStreamHandler.java @@ -8,7 +8,6 @@ import static io.flutter.plugins.firebase.firestore.FlutterFirebaseFirestorePlugin.DEFAULT_ERROR_CODE; -import android.util.Log; import com.google.firebase.firestore.DocumentReference; import com.google.firebase.firestore.ListenerRegistration; import com.google.firebase.firestore.MetadataChanges; @@ -44,10 +43,6 @@ public void onListen(Object arguments, EventSink events) { events.error(DEFAULT_ERROR_CODE, exception.getMessage(), exceptionDetails); events.endOfStream(); - Log.e( - "DocumentSnapshotsStreamHandler", - "OnListen exception: " + exception.getMessage()); - onCancel(null); } else { events.success(documentSnapshot); diff --git a/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/streamhandler/QuerySnapshotWrapper.java b/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/streamhandler/QuerySnapshotWrapper.java index c9d920bf64ee..3cd040c6bb2a 100644 --- a/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/streamhandler/QuerySnapshotWrapper.java +++ b/packages/cloud_firestore/cloud_firestore/android/src/main/java/io/flutter/plugins/firebase/firestore/streamhandler/QuerySnapshotWrapper.java @@ -1,7 +1,19 @@ - - - - +// Wrapper for com.google.firebase.firestore.QuerySnapshot, since it does +// not have a public constructor at this time. + +// Copyright 2018 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. package io.flutter.plugins.firebase.firestore.streamhandler; From f4b4c535b177b51d8db5df7389803a359e0d051f Mon Sep 17 00:00:00 2001 From: Ben White Date: Thu, 1 Jun 2023 15:39:52 -0500 Subject: [PATCH 18/18] using local version of android sdk --- packages/cloud_firestore/cloud_firestore/android/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/cloud_firestore/cloud_firestore/android/build.gradle b/packages/cloud_firestore/cloud_firestore/android/build.gradle index 7cffa56ad292..2fd22bc58fcf 100755 --- a/packages/cloud_firestore/cloud_firestore/android/build.gradle +++ b/packages/cloud_firestore/cloud_firestore/android/build.gradle @@ -50,8 +50,8 @@ android { dependencies { api firebaseCoreProject implementation platform("com.google.firebase:firebase-bom:${getRootProjectExtOrCoreProperty("FirebaseSDKVersion", firebaseCoreProject)}") - implementation 'com.google.firebase:firebase-firestore' -// implementation 'com.google.firebase:firebase-firestore:24.6.1' +// implementation 'com.google.firebase:firebase-firestore' + implementation 'com.google.firebase:firebase-firestore:24.6.1-a' implementation 'androidx.annotation:annotation:1.2.0' } }