Skip to content

Commit 0a15ecb

Browse files
authored
fix(performance, ios): fix a crash that would occur when creating a trace with performance collection disabled (#10243)
1 parent a2ce410 commit 0a15ecb

File tree

2 files changed

+13
-2
lines changed

2 files changed

+13
-2
lines changed

Diff for: packages/firebase_performance/firebase_performance/example/integration_test/firebase_performance_e2e_test.dart

+8-2
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
// found in the LICENSE file.
44

55
import 'package:firebase_core/firebase_core.dart';
6-
import 'package:flutter_test/flutter_test.dart';
76
import 'package:firebase_performance/firebase_performance.dart';
87
import 'package:flutter/foundation.dart' show kIsWeb;
8+
import 'package:flutter_test/flutter_test.dart';
99
import 'package:integration_test/integration_test.dart';
1010

1111
import 'firebase_options.dart';
@@ -46,10 +46,10 @@ void main() {
4646

4747
setUpAll(() async {
4848
performance = FirebasePerformance.instance;
49-
await performance.setPerformanceCollectionEnabled(true);
5049
});
5150

5251
setUp(() async {
52+
await performance.setPerformanceCollectionEnabled(true);
5353
testTrace = performance.newTrace('test-trace');
5454
});
5555

@@ -58,6 +58,12 @@ void main() {
5858
await testTrace.stop();
5959
});
6060

61+
test('starting trace with performance collection disabled', () async {
62+
await performance.setPerformanceCollectionEnabled(false);
63+
await testTrace.start();
64+
await testTrace.stop();
65+
});
66+
6167
test("starting Trace twice shouldn't throw an error", () async {
6268
await testTrace.start();
6369
await testTrace.start();

Diff for: packages/firebase_performance/firebase_performance/ios/Classes/FLTFirebasePerformancePlugin.m

+5
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,11 @@ - (void)traceStart:(id)arguments withMethodCallResult:(FLTFirebaseMethodCallResu
130130
NSString *name = arguments[@"name"];
131131

132132
FIRTrace *trace = [FIRPerformance startTraceWithName:name];
133+
if (trace == nil) {
134+
// Performance collection is disabled
135+
result.success(nil);
136+
return;
137+
}
133138
_traceHandle = [NSNumber numberWithInt:[_traceHandle intValue] + 1];
134139
[_traces setObject:trace forKey:_traceHandle];
135140

0 commit comments

Comments
 (0)