diff --git a/packages/firebase_analytics/firebase_analytics/android/src/main/java/io/flutter/plugins/firebase/analytics/FlutterFirebaseAnalyticsPlugin.java b/packages/firebase_analytics/firebase_analytics/android/src/main/java/io/flutter/plugins/firebase/analytics/FlutterFirebaseAnalyticsPlugin.java index c81c9c98f83f..98f70d84944a 100755 --- a/packages/firebase_analytics/firebase_analytics/android/src/main/java/io/flutter/plugins/firebase/analytics/FlutterFirebaseAnalyticsPlugin.java +++ b/packages/firebase_analytics/firebase_analytics/android/src/main/java/io/flutter/plugins/firebase/analytics/FlutterFirebaseAnalyticsPlugin.java @@ -302,8 +302,7 @@ private Task setDefaultEventParameters(final Map arguments cachedThreadPool.execute( () -> { try { - Map parameters = Objects.requireNonNull(arguments); - analytics.setDefaultEventParameters(createBundleFromMap(parameters)); + analytics.setDefaultEventParameters(createBundleFromMap(arguments)); taskCompletionSource.setResult(null); } catch (Exception e) { taskCompletionSource.setException(e); diff --git a/packages/firebase_analytics/firebase_analytics/lib/src/firebase_analytics.dart b/packages/firebase_analytics/firebase_analytics/lib/src/firebase_analytics.dart index aaf23020bcd2..42dd9e699c36 100755 --- a/packages/firebase_analytics/firebase_analytics/lib/src/firebase_analytics.dart +++ b/packages/firebase_analytics/firebase_analytics/lib/src/firebase_analytics.dart @@ -120,7 +120,7 @@ class FirebaseAnalytics extends FirebasePluginPlatform { /// Adds parameters that will be set on every event logged from the SDK, including automatic ones. Future setDefaultEventParameters( - Map defaultParameters, + Map? defaultParameters, ) async { await _delegate.setDefaultEventParameters(defaultParameters); } diff --git a/packages/firebase_analytics/firebase_analytics_platform_interface/lib/src/method_channel/method_channel_firebase_analytics.dart b/packages/firebase_analytics/firebase_analytics_platform_interface/lib/src/method_channel/method_channel_firebase_analytics.dart index 70a6ad743e64..0a02195d90b6 100644 --- a/packages/firebase_analytics/firebase_analytics_platform_interface/lib/src/method_channel/method_channel_firebase_analytics.dart +++ b/packages/firebase_analytics/firebase_analytics_platform_interface/lib/src/method_channel/method_channel_firebase_analytics.dart @@ -82,7 +82,7 @@ class MethodChannelFirebaseAnalytics extends FirebaseAnalyticsPlatform { @override Future setDefaultEventParameters( - Map defaultParameters, + Map? defaultParameters, ) async { try { return channel.invokeMethod( diff --git a/packages/firebase_analytics/firebase_analytics_platform_interface/lib/src/platform_interface/platform_interface_firebase_analytics.dart b/packages/firebase_analytics/firebase_analytics_platform_interface/lib/src/platform_interface/platform_interface_firebase_analytics.dart index 7eb383196784..23e900d672e6 100644 --- a/packages/firebase_analytics/firebase_analytics_platform_interface/lib/src/platform_interface/platform_interface_firebase_analytics.dart +++ b/packages/firebase_analytics/firebase_analytics_platform_interface/lib/src/platform_interface/platform_interface_firebase_analytics.dart @@ -139,7 +139,7 @@ abstract class FirebaseAnalyticsPlatform extends PlatformInterface { /// Adds parameters that will be set on every event logged from the SDK, including automatic ones. Future setDefaultEventParameters( - Map defaultParameters, + Map? defaultParameters, ) { throw UnimplementedError('setDefaultEventParameters() is not implemented'); } diff --git a/packages/firebase_analytics/firebase_analytics_web/lib/firebase_analytics_web.dart b/packages/firebase_analytics/firebase_analytics_web/lib/firebase_analytics_web.dart index bbb962502ddb..9fbb2d86f317 100644 --- a/packages/firebase_analytics/firebase_analytics_web/lib/firebase_analytics_web.dart +++ b/packages/firebase_analytics/firebase_analytics_web/lib/firebase_analytics_web.dart @@ -129,7 +129,7 @@ class FirebaseAnalyticsWeb extends FirebaseAnalyticsPlatform { @override Future setDefaultEventParameters( - Map defaultParameters, + Map? defaultParameters, ) async { throw UnimplementedError( 'setDefaultEventParameters() is not supported on web', diff --git a/tests/test_driver/firebase_analytics/firebase_analytics_e2e.dart b/tests/test_driver/firebase_analytics/firebase_analytics_e2e.dart index 4cb0cdfab217..36655c80a659 100644 --- a/tests/test_driver/firebase_analytics/firebase_analytics_e2e.dart +++ b/tests/test_driver/firebase_analytics/firebase_analytics_e2e.dart @@ -189,12 +189,34 @@ void setupTests() { .setDefaultEventParameters({'default': 'parameters'}), throwsA(isA()), ); + // reset a single default parameter + await expectLater( + FirebaseAnalytics.instance + .setDefaultEventParameters({'default': null}), + throwsA(isA()), + ); + // reset all default parameters + await expectLater( + FirebaseAnalytics.instance.setDefaultEventParameters(null), + throwsA(isA()), + ); } else { await expectLater( FirebaseAnalytics.instance .setDefaultEventParameters({'default': 'parameters'}), completes, ); + // reset a single default parameter + await expectLater( + FirebaseAnalytics.instance + .setDefaultEventParameters({'default': null}), + completes, + ); + // reset all default parameters + await expectLater( + FirebaseAnalytics.instance.setDefaultEventParameters(null), + completes, + ); } }, );