Skip to content

Commit d75786f

Browse files
fix(firestore, web): use enableMultiTabIndexedDbPersistence() API when the user inputs synchronizeTabs as true (#10024)
1 parent be4b42b commit d75786f

File tree

2 files changed

+10
-4
lines changed

2 files changed

+10
-4
lines changed

packages/cloud_firestore/cloud_firestore_web/lib/src/interop/firestore.dart

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,9 +63,14 @@ class Firestore extends JsObjectWrapper<firestore_interop.FirestoreJsImpl> {
6363
firestore_interop.doc(jsObject, documentPath));
6464

6565
Future<void> enablePersistence(
66-
[firestore_interop.PersistenceSettings? settings]) =>
67-
handleThenable(
68-
firestore_interop.enableIndexedDbPersistence(jsObject, settings));
66+
[firestore_interop.PersistenceSettings? settings]) {
67+
if (settings != null && settings.synchronizeTabs == true) {
68+
return handleThenable(
69+
firestore_interop.enableMultiTabIndexedDbPersistence(jsObject));
70+
}
71+
return handleThenable(
72+
firestore_interop.enableIndexedDbPersistence(jsObject));
73+
}
6974

7075
Stream<void> snapshotsInSync() {
7176
late StreamController<void> controller;

packages/cloud_firestore/cloud_firestore_web/lib/src/interop/firestore_interop.dart

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,8 @@ external PromiseJsImpl<void> enableIndexedDbPersistence(
8585

8686
@JS()
8787
external PromiseJsImpl<void> enableMultiTabIndexedDbPersistence(
88-
FirestoreJsImpl firestore);
88+
FirestoreJsImpl firestore,
89+
);
8990

9091
@JS()
9192
external PromiseJsImpl<void> enableNetwork(FirestoreJsImpl firestore);

0 commit comments

Comments
 (0)