File tree Expand file tree Collapse file tree 1 file changed +15
-2
lines changed
packages/firebase_storage/firebase_storage_web/lib/src/interop Expand file tree Collapse file tree 1 file changed +15
-2
lines changed Original file line number Diff line number Diff line change @@ -11,6 +11,7 @@ import 'dart:js_interop';
11
11
import 'package:firebase_core_web/firebase_core_web_interop.dart'
12
12
as core_interop;
13
13
import 'package:firebase_core_web/firebase_core_web_interop.dart' ;
14
+ import 'package:flutter/foundation.dart' ;
14
15
15
16
import 'storage_interop.dart' as storage_interop;
16
17
@@ -343,8 +344,20 @@ class UploadTask extends JsObjectWrapper<storage_interop.UploadTaskJsImpl> {
343
344
/// Returns [:true:] if it had an effect.
344
345
bool cancel () => jsObject.cancel ().toDart;
345
346
346
- String _taskSnapshotWindowsKey (String appName, String bucket, String path) =>
347
- 'flutterfire-${appName }_${bucket }_${path }_storageTask' ;
347
+ // purely for debug mode and tracking listeners to clean up on "hot restart"
348
+ final Map <String , int > _snapshotListeners = {};
349
+ String _taskSnapshotWindowsKey (String appName, String bucket, String path) {
350
+ if (kDebugMode) {
351
+ final key = 'flutterfire-${appName }_${bucket }_${path }_storageTask' ;
352
+ if (_snapshotListeners.containsKey (key)) {
353
+ _snapshotListeners[key] = _snapshotListeners[key]! + 1 ;
354
+ } else {
355
+ _snapshotListeners[key] = 0 ;
356
+ }
357
+ return '$key -${_snapshotListeners [key ]}' ;
358
+ }
359
+ return 'no-op' ;
360
+ }
348
361
349
362
/// Stream for upload task state changed event.
350
363
Stream <UploadTaskSnapshot > onStateChanged (
You can’t perform that action at this time.
0 commit comments