Skip to content

Commit 595dfb0

Browse files
Add forceOwnership to firestore-exp (#3753)
1 parent 95ab732 commit 595dfb0

File tree

2 files changed

+10
-7
lines changed

2 files changed

+10
-7
lines changed

packages/firestore/exp-types/index.d.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,10 @@ export interface Settings {
3636
cacheSizeBytes?: number;
3737
}
3838

39+
export interface PersistenceSettings {
40+
forceOwnership?: boolean;
41+
}
42+
3943
export interface SnapshotListenOptions {
4044
readonly includeMetadataChanges?: boolean;
4145
}
@@ -95,9 +99,9 @@ export function waitForPendingWrites(
9599
export function enableNetwork(firestore: FirebaseFirestore): Promise<void>;
96100
export function disableNetwork(firestore: FirebaseFirestore): Promise<void>;
97101

98-
// TODO(firestoreexp): Add experimentalForceOwningTab support
99102
export function enableIndexedDbPersistence(
100-
firestore: FirebaseFirestore
103+
firestore: FirebaseFirestore,
104+
persistenceSettings?: PersistenceSettings
101105
): Promise<void>;
102106
export function enableMultiTabIndexedDbPersistence(
103107
firestore: FirebaseFirestore
@@ -405,8 +409,6 @@ export function updateDoc(
405409
): Promise<void>;
406410
export function deleteDoc(reference: DocumentReference<unknown>): Promise<void>;
407411

408-
// TODO(firestoreexp): Update API Proposal to use FirestoreError in these
409-
// callbacks
410412
export function onSnapshot<T>(
411413
reference: DocumentReference<T>,
412414
observer: {

packages/firestore/exp/src/api/database.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ import {
6262
remoteStoreDisableNetwork,
6363
remoteStoreEnableNetwork
6464
} from '../../../src/remote/remote_store';
65+
import { PersistenceSettings } from '../../../exp-types';
6566

6667
const LOG_TAG = 'Firestore';
6768

@@ -197,7 +198,8 @@ export function getFirestore(app: FirebaseApp): Firestore {
197198
}
198199

199200
export function enableIndexedDbPersistence(
200-
firestore: firestore.FirebaseFirestore
201+
firestore: firestore.FirebaseFirestore,
202+
persistenceSettings?: PersistenceSettings
201203
): Promise<void> {
202204
const firestoreImpl = cast(firestore, Firestore);
203205
verifyNotInitialized(firestoreImpl);
@@ -214,15 +216,14 @@ export function enableIndexedDbPersistence(
214216
);
215217

216218
return firestoreImpl._queue.enqueue(async () => {
217-
// TODO(firestoreexp): Add forceOwningTab
218219
await setOfflineComponentProvider(
219220
firestoreImpl,
220221
{
221222
durable: true,
222223
synchronizeTabs: false,
223224
cacheSizeBytes:
224225
settings.cacheSizeBytes || LruParams.DEFAULT_CACHE_SIZE_BYTES,
225-
forceOwningTab: false
226+
forceOwningTab: !!persistenceSettings?.forceOwnership
226227
},
227228
offlineComponentProvider
228229
);

0 commit comments

Comments
 (0)