Skip to content

Commit dff46a3

Browse files
fix(firebase_analytics): allow null values for setDefaultEventParameters() which removes defaults. Permissible on android and iOS. (#9135)
Co-authored-by: Russell Wheatley <[email protected]>
1 parent 9da7cc3 commit dff46a3

File tree

6 files changed

+27
-6
lines changed

6 files changed

+27
-6
lines changed

packages/firebase_analytics/firebase_analytics/android/src/main/java/io/flutter/plugins/firebase/analytics/FlutterFirebaseAnalyticsPlugin.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -302,8 +302,7 @@ private Task<Void> setDefaultEventParameters(final Map<String, Object> arguments
302302
cachedThreadPool.execute(
303303
() -> {
304304
try {
305-
Map<String, Object> parameters = Objects.requireNonNull(arguments);
306-
analytics.setDefaultEventParameters(createBundleFromMap(parameters));
305+
analytics.setDefaultEventParameters(createBundleFromMap(arguments));
307306
taskCompletionSource.setResult(null);
308307
} catch (Exception e) {
309308
taskCompletionSource.setException(e);

packages/firebase_analytics/firebase_analytics/lib/src/firebase_analytics.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ class FirebaseAnalytics extends FirebasePluginPlatform {
120120

121121
/// Adds parameters that will be set on every event logged from the SDK, including automatic ones.
122122
Future<void> setDefaultEventParameters(
123-
Map<String, Object> defaultParameters,
123+
Map<String, Object?>? defaultParameters,
124124
) async {
125125
await _delegate.setDefaultEventParameters(defaultParameters);
126126
}

packages/firebase_analytics/firebase_analytics_platform_interface/lib/src/method_channel/method_channel_firebase_analytics.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ class MethodChannelFirebaseAnalytics extends FirebaseAnalyticsPlatform {
8282

8383
@override
8484
Future<void> setDefaultEventParameters(
85-
Map<String, Object> defaultParameters,
85+
Map<String, Object?>? defaultParameters,
8686
) async {
8787
try {
8888
return channel.invokeMethod<void>(

packages/firebase_analytics/firebase_analytics_platform_interface/lib/src/platform_interface/platform_interface_firebase_analytics.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ abstract class FirebaseAnalyticsPlatform extends PlatformInterface {
139139

140140
/// Adds parameters that will be set on every event logged from the SDK, including automatic ones.
141141
Future<void> setDefaultEventParameters(
142-
Map<String, Object> defaultParameters,
142+
Map<String, Object?>? defaultParameters,
143143
) {
144144
throw UnimplementedError('setDefaultEventParameters() is not implemented');
145145
}

packages/firebase_analytics/firebase_analytics_web/lib/firebase_analytics_web.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ class FirebaseAnalyticsWeb extends FirebaseAnalyticsPlatform {
129129

130130
@override
131131
Future<void> setDefaultEventParameters(
132-
Map<String, Object> defaultParameters,
132+
Map<String, Object?>? defaultParameters,
133133
) async {
134134
throw UnimplementedError(
135135
'setDefaultEventParameters() is not supported on web',

tests/test_driver/firebase_analytics/firebase_analytics_e2e.dart

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,12 +189,34 @@ void setupTests() {
189189
.setDefaultEventParameters({'default': 'parameters'}),
190190
throwsA(isA<UnimplementedError>()),
191191
);
192+
// reset a single default parameter
193+
await expectLater(
194+
FirebaseAnalytics.instance
195+
.setDefaultEventParameters({'default': null}),
196+
throwsA(isA<UnimplementedError>()),
197+
);
198+
// reset all default parameters
199+
await expectLater(
200+
FirebaseAnalytics.instance.setDefaultEventParameters(null),
201+
throwsA(isA<UnimplementedError>()),
202+
);
192203
} else {
193204
await expectLater(
194205
FirebaseAnalytics.instance
195206
.setDefaultEventParameters({'default': 'parameters'}),
196207
completes,
197208
);
209+
// reset a single default parameter
210+
await expectLater(
211+
FirebaseAnalytics.instance
212+
.setDefaultEventParameters({'default': null}),
213+
completes,
214+
);
215+
// reset all default parameters
216+
await expectLater(
217+
FirebaseAnalytics.instance.setDefaultEventParameters(null),
218+
completes,
219+
);
198220
}
199221
},
200222
);

0 commit comments

Comments
 (0)