diff --git a/packages/cloud_firestore/cloud_firestore_web/lib/src/interop/firestore.dart b/packages/cloud_firestore/cloud_firestore_web/lib/src/interop/firestore.dart index 0d8f41908677..17ea8867c9aa 100644 --- a/packages/cloud_firestore/cloud_firestore_web/lib/src/interop/firestore.dart +++ b/packages/cloud_firestore/cloud_firestore_web/lib/src/interop/firestore.dart @@ -63,9 +63,14 @@ class Firestore extends JsObjectWrapper { firestore_interop.doc(jsObject, documentPath)); Future enablePersistence( - [firestore_interop.PersistenceSettings? settings]) => - handleThenable( - firestore_interop.enableIndexedDbPersistence(jsObject, settings)); + [firestore_interop.PersistenceSettings? settings]) { + if (settings != null && settings.synchronizeTabs == true) { + return handleThenable( + firestore_interop.enableMultiTabIndexedDbPersistence(jsObject)); + } + return handleThenable( + firestore_interop.enableIndexedDbPersistence(jsObject)); + } Stream snapshotsInSync() { late StreamController controller; diff --git a/packages/cloud_firestore/cloud_firestore_web/lib/src/interop/firestore_interop.dart b/packages/cloud_firestore/cloud_firestore_web/lib/src/interop/firestore_interop.dart index 18c1f2b2e21d..8d5778553368 100644 --- a/packages/cloud_firestore/cloud_firestore_web/lib/src/interop/firestore_interop.dart +++ b/packages/cloud_firestore/cloud_firestore_web/lib/src/interop/firestore_interop.dart @@ -85,7 +85,8 @@ external PromiseJsImpl enableIndexedDbPersistence( @JS() external PromiseJsImpl enableMultiTabIndexedDbPersistence( - FirestoreJsImpl firestore); + FirestoreJsImpl firestore, +); @JS() external PromiseJsImpl enableNetwork(FirestoreJsImpl firestore);