Skip to content

Commit 8dd9ff5

Browse files
fix: app check stream clean up on hot restart
1 parent b485792 commit 8dd9ff5

File tree

2 files changed

+8
-2
lines changed

2 files changed

+8
-2
lines changed

packages/firebase_app_check/firebase_app_check_web/lib/firebase_app_check_web.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ class FirebaseAppCheckWeb extends FirebaseAppCheckPlatform {
132132
_delegate!.idTokenChangedController?.close();
133133
},
134134
);
135-
_delegate!.onTokenChanged().listen((event) {
135+
_delegate!.onTokenChanged(app.name).listen((event) {
136136
_tokenChangesListeners[app.name]!.add(event.token.toDart);
137137
});
138138
}

packages/firebase_app_check/firebase_app_check_web/lib/src/interop/app_check.dart

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,11 @@ class AppCheck extends JsObjectWrapper<app_check_interop.AppCheckJsImpl> {
7676
// ignore: close_sinks
7777
_idTokenChangedController;
7878

79-
Stream<app_check_interop.AppCheckTokenResult> onTokenChanged() {
79+
String _appCheckWindowsKey(String appName) =>
80+
'flutterfire-${appName}_onTokenChanged';
81+
Stream<app_check_interop.AppCheckTokenResult> onTokenChanged(String appName) {
82+
final appCheckWindowsKey = _appCheckWindowsKey(appName);
83+
unsubscribeWindowsListener(appCheckWindowsKey);
8084
if (_idTokenChangedController == null) {
8185
final nextWrapper = ((app_check_interop.AppCheckTokenResult result) {
8286
_idTokenChangedController!.add(result);
@@ -91,12 +95,14 @@ class AppCheck extends JsObjectWrapper<app_check_interop.AppCheckJsImpl> {
9195
nextWrapper,
9296
errorWrapper,
9397
);
98+
setWindowsListener(appCheckWindowsKey, _idTokenChangedUnsubscribe!);
9499
}
95100

96101
void stopListen() {
97102
_idTokenChangedUnsubscribe?.callAsFunction();
98103
_idTokenChangedUnsubscribe = null;
99104
_idTokenChangedController = null;
105+
removeWindowsListener(appCheckWindowsKey);
100106
}
101107

102108
_idTokenChangedController =

0 commit comments

Comments
 (0)