File tree Expand file tree Collapse file tree
packages/firebase_storage/firebase_storage_web/lib/src/interop Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -11,6 +11,7 @@ import 'dart:js_interop';
1111import 'package:firebase_core_web/firebase_core_web_interop.dart'
1212 as core_interop;
1313import 'package:firebase_core_web/firebase_core_web_interop.dart' ;
14+ import 'package:flutter/foundation.dart' ;
1415
1516import 'storage_interop.dart' as storage_interop;
1617
@@ -343,8 +344,20 @@ class UploadTask extends JsObjectWrapper<storage_interop.UploadTaskJsImpl> {
343344 /// Returns [:true:] if it had an effect.
344345 bool cancel () => jsObject.cancel ().toDart;
345346
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+ }
348361
349362 /// Stream for upload task state changed event.
350363 Stream <UploadTaskSnapshot > onStateChanged (
You can’t perform that action at this time.
0 commit comments