Skip to content

Commit 2b98b28

Browse files
Make getNextCollectionGroupToUpdate() deterministic (#6031)
1 parent b3e4af8 commit 2b98b28

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

packages/firestore/src/local/indexeddb_index_manager.ts

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ import { isArray } from '../model/values';
5353
import { Value as ProtoValue } from '../protos/firestore_proto_api';
5454
import { debugAssert } from '../util/assert';
5555
import { logDebug } from '../util/log';
56-
import { immediateSuccessor } from '../util/misc';
56+
import { immediateSuccessor, primitiveComparator } from '../util/misc';
5757
import { ObjectMap } from '../util/obj_map';
5858
import { diffSortedSets, SortedSet } from '../util/sorted_set';
5959

@@ -612,9 +612,12 @@ export class IndexedDbIndexManager implements IndexManager {
612612
if (indexes.length === 0) {
613613
return null;
614614
}
615-
indexes.sort(
616-
(l, r) => l.indexState.sequenceNumber - r.indexState.sequenceNumber
617-
);
615+
indexes.sort((l, r) => {
616+
const cmp = l.indexState.sequenceNumber - r.indexState.sequenceNumber;
617+
return cmp !== 0
618+
? cmp
619+
: primitiveComparator(l.collectionGroup, r.collectionGroup);
620+
});
618621
return indexes[0].collectionGroup;
619622
});
620623
}

0 commit comments

Comments
 (0)