@dereekb/firebase 13.0.5 → 13.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.cjs.js +575 -146
- package/index.cjs.js.map +1 -1
- package/index.esm.js +573 -149
- package/index.esm.js.map +1 -1
- package/package.json +5 -5
- package/src/lib/common/firestore/accessor/document.rxjs.d.ts +55 -3
- package/src/lib/common/firestore/accessor/document.utility.d.ts +439 -128
- package/src/lib/common/firestore/query/constraint.d.ts +27 -22
- package/src/lib/common/firestore/query/constraint.template.d.ts +48 -32
- package/src/lib/common/firestore/query/iterator.d.ts +58 -2
- package/src/lib/common/firestore/query/query.iterate.d.ts +300 -96
- package/test/index.cjs.js +824 -15
- package/test/index.esm.js +826 -18
- package/test/package.json +6 -6
- package/test/src/lib/common/firestore/index.d.ts +1 -0
- package/test/src/lib/common/firestore/test.driver.utility.d.ts +7 -0
package/index.esm.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { increment, arrayRemove, arrayUnion, onSnapshot, getDoc, deleteDoc, setDoc, updateDoc, collection, collectionGroup, doc, writeBatch, runTransaction, getDocs, getCountFromServer, endBefore as endBefore$1, endAt as endAt$1, startAfter as startAfter$1, startAt as startAt$1, where as where$1, documentId, orderBy as orderBy$1, limitToLast as limitToLast$1, limit as limit$1, query } from 'firebase/firestore';
|
|
2
|
-
import { cachedGetter, mergeModifiers, asArray, filterUndefinedValues, objectHasNoKeys, filterFalsyAndEmptyValues, build, wrapUseAsyncFunction, useAsync, runAsyncTasksForValues, filterMaybeArrayValues, performMakeLoop, makeWithFactory, toModelFieldConversions, makeModelMapFunctions, modifyModelMapFunctions, assignValuesToPOJOFunction, KeyValueTypleValueFilter, asObjectCopyFactory, transformStringFunctionConfig, transformStringFunction, passThrough, filterUniqueTransform, unique, transformNumberFunction, sortValuesFunctionOrMapIdentityWithSortRef, toModelMapFunctions, isEqualToValueDecisionFunction, filterFromPOJOFunction, mapObjectMap, copyObject, modelFieldMapFunctions, filterNullAndUndefinedValues, isDate, bitwiseSetDencoder, sortAscendingIndexNumberRefFunction, latLngStringFunction, DEFAULT_LAT_LNG_STRING_VALUE, mapObjectMapFunction, filterEmptyArrayValues, filterUniqueFunction, isMapIdentityFunction, chainMapSameFunctions, unixDateTimeSecondsNumberFromDate, dateFromDateOrTimeSecondsNumber,
|
|
2
|
+
import { cachedGetter, mergeModifiers, asArray, filterUndefinedValues, objectHasNoKeys, filterFalsyAndEmptyValues, build, wrapUseAsyncFunction, useAsync, runAsyncTasksForValues, filterMaybeArrayValues, performMakeLoop, makeWithFactory, MAP_IDENTITY, toModelFieldConversions, makeModelMapFunctions, modifyModelMapFunctions, assignValuesToPOJOFunction, KeyValueTypleValueFilter, asObjectCopyFactory, transformStringFunctionConfig, transformStringFunction, passThrough, filterUniqueTransform, unique, transformNumberFunction, sortValuesFunctionOrMapIdentityWithSortRef, toModelMapFunctions, isEqualToValueDecisionFunction, filterFromPOJOFunction, mapObjectMap, copyObject, modelFieldMapFunctions, filterNullAndUndefinedValues, isDate, bitwiseSetDencoder, sortAscendingIndexNumberRefFunction, latLngStringFunction, DEFAULT_LAT_LNG_STRING_VALUE, mapObjectMapFunction, filterEmptyArrayValues, filterUniqueFunction, isMapIdentityFunction, chainMapSameFunctions, unixDateTimeSecondsNumberFromDate, dateFromDateOrTimeSecondsNumber, pushItemOrArrayItemsIntoArray, separateValues, convertToArray, UTF_PRIVATE_USAGE_AREA_START, UTF_8_START_CHARACTER, mergeArraysIntoArray, lastValue, flattenArrayOrValueArray, allowValueOnceFilter, asGetter, getValueFromGetter, mapIdentityFunction, performTasksFromFactoryInParallelFunction, performAsyncTasks, batch, flattenArray, calculateExpirationDate, groupValues, forEachInIterable, arrayToObject, takeFront, stringContains, isOddNumber, objectToMap, ServerErrorResponse, toReadableError, capitalizeFirstLetter, lowercaseFirstLetter, toRelativeSlashPathStartType, mappedUseFunction, iterableToArray, setContainsAllValues, usePromise, slashPathFactory, errorMessageContainsString, bitwiseObjectDencoder, UNSET_INDEX_NUMBER, mergeObjectsFunction, mergeObjects, forEachKeyValue, updateMaybeValue, ModelRelationUtility, filterKeysOnPOJOFunction, areEqualPOJOValuesUsingPojoFilter, filterOnlyUndefinedValues, makeModelMap, isThrottled, MS_IN_HOUR, multiValueMapBuilder, mergeSlashPaths, slashPathDetails, toAbsoluteSlashPathStartType, SLASH_PATH_FILE_TYPE_SEPARATOR, slashPathPathMatcher, decisionFunction, slashPathSubPathMatcher } from '@dereekb/util';
|
|
3
3
|
import { filterMaybe, lazyFrom, itemAccumulator, ItemPageIterator, mappedPageItemIteration } from '@dereekb/rxjs';
|
|
4
|
-
import { map, from,
|
|
4
|
+
import { map, from, combineLatest, of, exhaustMap, Observable, switchMap, timer, skip, shareReplay } from 'rxjs';
|
|
5
5
|
import { UNKNOWN_WEBSITE_LINK_TYPE, encodeWebsiteFileLinkToWebsiteLinkEncodedData, decodeWebsiteLinkEncodedDataToWebsiteFileLink, AbstractModelPermissionService, grantedRoleMapReader, noAccessRoleMap, fullAccessRoleMap, IsE164PhoneNumber } from '@dereekb/model';
|
|
6
6
|
import { toISODateString, formatToISO8601DateString, toJsDate, isSameDate, dateRange, sortByDateFunction, yearWeekCode, UNKNOWN_YEAR_WEEK_CODE } from '@dereekb/date';
|
|
7
7
|
import { httpsCallable } from 'firebase/functions';
|
|
@@ -660,31 +660,33 @@ function extendFirestoreCollectionWithSingleDocumentAccessor(x, singleItemIdenti
|
|
|
660
660
|
}
|
|
661
661
|
|
|
662
662
|
/**
|
|
663
|
-
* Creates an array of new FirestoreDocument instances without
|
|
663
|
+
* Creates an array of new {@link FirestoreDocument} instances without persisting them to Firestore.
|
|
664
664
|
*
|
|
665
|
-
*
|
|
666
|
-
*
|
|
667
|
-
*
|
|
668
|
-
*
|
|
669
|
-
* @
|
|
665
|
+
* Each document is allocated a unique auto-generated ID via {@link FirestoreDocumentAccessor.newDocument},
|
|
666
|
+
* but no data is written to the database. Useful for preparing document references in bulk before
|
|
667
|
+
* deciding what data to write.
|
|
668
|
+
*
|
|
669
|
+
* @param documentAccessor - Accessor that provides the `newDocument()` factory method
|
|
670
|
+
* @param count - Number of document instances to create
|
|
671
|
+
* @returns Array of `count` new document instances, each with a unique auto-generated ID
|
|
670
672
|
*/
|
|
671
673
|
function newDocuments(documentAccessor, count) {
|
|
672
674
|
return makeWithFactory(() => documentAccessor.newDocument(), count);
|
|
673
675
|
}
|
|
674
676
|
/**
|
|
675
|
-
* Creates
|
|
677
|
+
* Creates and optionally persists multiple Firestore documents in sequence.
|
|
676
678
|
*
|
|
677
|
-
* For each
|
|
678
|
-
* 1.
|
|
679
|
-
* 2.
|
|
680
|
-
* 3. If init returns data,
|
|
681
|
-
* 4.
|
|
679
|
+
* Uses {@link performMakeLoop} to iterate `count` times. For each iteration:
|
|
680
|
+
* 1. A new document instance is created (via `make.newDocument` or the default factory)
|
|
681
|
+
* 2. `make.init(i, document)` is awaited to produce initial data
|
|
682
|
+
* 3. If init returns non-nullish data, `document.accessor.create(data)` persists it
|
|
683
|
+
* 4. The document instance is collected regardless of whether it was persisted
|
|
682
684
|
*
|
|
683
|
-
*
|
|
684
|
-
*
|
|
685
|
-
* @param documentAccessor -
|
|
686
|
-
* @param make -
|
|
687
|
-
* @returns
|
|
685
|
+
* Documents are created sequentially (not in parallel) to allow index-dependent logic.
|
|
686
|
+
*
|
|
687
|
+
* @param documentAccessor - Accessor providing the document factory and collection context
|
|
688
|
+
* @param make - Configuration controlling count, factory, and initialization
|
|
689
|
+
* @returns Promise resolving to all created document instances (length === `make.count`)
|
|
688
690
|
*/
|
|
689
691
|
function makeDocuments(documentAccessor, make) {
|
|
690
692
|
const newDocumentFn = make.newDocument ?? (() => documentAccessor.newDocument());
|
|
@@ -701,65 +703,52 @@ function makeDocuments(documentAccessor, make) {
|
|
|
701
703
|
});
|
|
702
704
|
}
|
|
703
705
|
/**
|
|
704
|
-
*
|
|
706
|
+
* Fetches {@link DocumentSnapshot}s for multiple documents in parallel using {@link runAsyncTasksForValues}.
|
|
705
707
|
*
|
|
706
|
-
*
|
|
708
|
+
* Each document's `accessor.get()` is called concurrently. The returned array preserves
|
|
709
|
+
* the same ordering as the input `documents` array.
|
|
707
710
|
*
|
|
708
|
-
* @
|
|
709
|
-
* @
|
|
710
|
-
* @returns Promise that resolves to an array of DocumentSnapshots in the same order as the input documents
|
|
711
|
+
* @param documents - Documents to fetch snapshots for
|
|
712
|
+
* @returns Snapshots in the same order as the input array
|
|
711
713
|
*/
|
|
712
714
|
function getDocumentSnapshots(documents) {
|
|
713
715
|
return runAsyncTasksForValues(documents, (x) => x.accessor.get());
|
|
714
716
|
}
|
|
715
717
|
/**
|
|
716
|
-
*
|
|
717
|
-
*
|
|
718
|
-
* Fetches the current snapshot of the document and returns both the original
|
|
719
|
-
* document instance and the snapshot together.
|
|
718
|
+
* Fetches the current snapshot of a single document and pairs it with the document instance.
|
|
720
719
|
*
|
|
721
|
-
* @
|
|
722
|
-
* @
|
|
723
|
-
* @returns Promise that resolves to a document-snapshot pair
|
|
720
|
+
* @param document - The document to fetch
|
|
721
|
+
* @returns A pair containing the document and its snapshot
|
|
724
722
|
*/
|
|
725
723
|
function getDocumentSnapshotPair(document) {
|
|
726
724
|
return document.accessor.get().then((snapshot) => ({ document, snapshot }));
|
|
727
725
|
}
|
|
728
726
|
/**
|
|
729
|
-
*
|
|
727
|
+
* Fetches snapshots for multiple documents in parallel and pairs each with its document instance.
|
|
730
728
|
*
|
|
731
|
-
*
|
|
732
|
-
* the
|
|
733
|
-
*
|
|
734
|
-
* @template D - The FirestoreDocument implementation type
|
|
735
|
-
* @param documents - Array of document instances to get snapshots for
|
|
736
|
-
* @returns Promise that resolves to an array of document-snapshot pairs in the same order as the input documents
|
|
729
|
+
* @param documents - Documents to fetch
|
|
730
|
+
* @returns Pairs in the same order as the input array
|
|
737
731
|
*/
|
|
738
732
|
function getDocumentSnapshotPairs(documents) {
|
|
739
733
|
return runAsyncTasksForValues(documents, getDocumentSnapshotPair);
|
|
740
734
|
}
|
|
741
735
|
/**
|
|
742
|
-
*
|
|
743
|
-
*
|
|
744
|
-
* Fetches the current snapshot of the document, extracts its data with ID and key fields,
|
|
745
|
-
* and returns all three together in a single object.
|
|
736
|
+
* Fetches a document's snapshot, extracts its data with `id`/`key` fields, and returns all three as a triplet.
|
|
746
737
|
*
|
|
747
|
-
* @
|
|
748
|
-
* @
|
|
749
|
-
* @returns Promise that resolves to a document-snapshot-data triplet
|
|
738
|
+
* @param document - The document to fetch
|
|
739
|
+
* @returns A triplet of document, snapshot, and data (data may be `undefined` if the document doesn't exist)
|
|
750
740
|
*/
|
|
751
741
|
function getDocumentSnapshotDataPair(document) {
|
|
752
742
|
return document.accessor.get().then((snapshot) => ({ document, snapshot, data: documentDataWithIdAndKey(snapshot) }));
|
|
753
743
|
}
|
|
754
744
|
/**
|
|
755
|
-
*
|
|
745
|
+
* Fetches snapshot-data triplets for multiple documents in parallel.
|
|
756
746
|
*
|
|
757
|
-
*
|
|
758
|
-
*
|
|
747
|
+
* Processes up to 200 documents concurrently via {@link runAsyncTasksForValues}.
|
|
748
|
+
* The returned array preserves the same ordering as the input.
|
|
759
749
|
*
|
|
760
|
-
* @
|
|
761
|
-
* @
|
|
762
|
-
* @returns Promise that resolves to an array of document-snapshot-data triplets in the same order as the input documents
|
|
750
|
+
* @param documents - Documents to fetch
|
|
751
|
+
* @returns Triplets in the same order as the input array
|
|
763
752
|
*/
|
|
764
753
|
function getDocumentSnapshotDataPairs(documents) {
|
|
765
754
|
return runAsyncTasksForValues(documents, getDocumentSnapshotDataPair, {
|
|
@@ -767,18 +756,27 @@ function getDocumentSnapshotDataPairs(documents) {
|
|
|
767
756
|
});
|
|
768
757
|
}
|
|
769
758
|
/**
|
|
770
|
-
*
|
|
759
|
+
* Fetches snapshot-data triplets for multiple documents and filters out those that don't exist in Firestore.
|
|
771
760
|
*
|
|
772
|
-
*
|
|
773
|
-
* only
|
|
761
|
+
* Convenience wrapper around {@link getDocumentSnapshotDataPairs} that removes entries where `data` is nullish,
|
|
762
|
+
* returning only {@link FirestoreDocumentSnapshotDataPairWithData} results.
|
|
774
763
|
*
|
|
775
|
-
* @
|
|
776
|
-
* @
|
|
777
|
-
* @returns Promise that resolves to an array of document-snapshot-data triplets for existing documents only
|
|
764
|
+
* @param documents - Documents to fetch
|
|
765
|
+
* @returns Triplets for documents that exist, in their original relative order
|
|
778
766
|
*/
|
|
779
767
|
function getDocumentSnapshotDataPairsWithData(documents) {
|
|
780
768
|
return getDocumentSnapshotDataPairs(documents).then((x) => x.filter((y) => !!y.data));
|
|
781
769
|
}
|
|
770
|
+
/**
|
|
771
|
+
* Fetches raw snapshot data tuples for multiple documents in parallel.
|
|
772
|
+
*
|
|
773
|
+
* Unlike {@link getDocumentSnapshotDataPairs}, this returns a lightweight `[document, data]` tuple
|
|
774
|
+
* and does not inject `id`/`key` fields onto the data. The `data` value is the raw result of
|
|
775
|
+
* `snapshot.data()` and may be `undefined` for non-existent documents.
|
|
776
|
+
*
|
|
777
|
+
* @param documents - Documents to fetch
|
|
778
|
+
* @returns Tuples in the same order as the input array
|
|
779
|
+
*/
|
|
782
780
|
function getDocumentSnapshotDataTuples(documents) {
|
|
783
781
|
return runAsyncTasksForValues(documents, (document) => document.accessor.get().then((snapshot) => [document, snapshot.data()]));
|
|
784
782
|
}
|
|
@@ -792,33 +790,109 @@ function getDataFromDocumentSnapshots(snapshots, withId = true) {
|
|
|
792
790
|
const mapFn = documentDataFunction(withId);
|
|
793
791
|
return filterMaybeArrayValues(snapshots.map(mapFn));
|
|
794
792
|
}
|
|
793
|
+
/**
|
|
794
|
+
* Creates {@link FirestoreDocument} instances for all documents in a {@link QuerySnapshot}.
|
|
795
|
+
*
|
|
796
|
+
* Maps each document in `snapshots.docs` to a loaded document via `accessor.loadDocument(ref)`.
|
|
797
|
+
* No additional data fetching occurs; the documents are loaded from their existing references.
|
|
798
|
+
*
|
|
799
|
+
* @param accessor - Accessor to load documents with
|
|
800
|
+
* @param snapshots - Query snapshot containing the document references
|
|
801
|
+
* @returns Document instances in the same order as the query results
|
|
802
|
+
*/
|
|
795
803
|
function loadDocumentsForSnapshots(accessor, snapshots) {
|
|
796
804
|
return snapshots.docs.map((x) => accessor.loadDocument(x.ref));
|
|
797
805
|
}
|
|
806
|
+
/**
|
|
807
|
+
* Extracts {@link DocumentReference}s from arbitrary values and loads them as {@link FirestoreDocument} instances.
|
|
808
|
+
*
|
|
809
|
+
* Convenience function that maps values through `getRef` then delegates to {@link loadDocumentsForDocumentReferences}.
|
|
810
|
+
*
|
|
811
|
+
* @param accessor - Accessor to load documents with
|
|
812
|
+
* @param values - Source values to extract references from
|
|
813
|
+
* @param getRef - Extracts a document reference from each value
|
|
814
|
+
* @returns Document instances in the same order as the input values
|
|
815
|
+
*/
|
|
798
816
|
function loadDocumentsForDocumentReferencesFromValues(accessor, values, getRef) {
|
|
799
817
|
return loadDocumentsForDocumentReferences(accessor, values.map(getRef));
|
|
800
818
|
}
|
|
819
|
+
/**
|
|
820
|
+
* Alias for {@link loadDocumentsForDocumentReferencesFromValues}.
|
|
821
|
+
*/
|
|
801
822
|
const loadDocumentsForValues = loadDocumentsForDocumentReferencesFromValues;
|
|
823
|
+
/**
|
|
824
|
+
* Loads {@link FirestoreDocument} instances from an array of {@link DocumentReference}s.
|
|
825
|
+
*
|
|
826
|
+
* Each reference is passed to `accessor.loadDocument()` to create a document wrapper.
|
|
827
|
+
* No network calls are made; this only creates in-memory document instances bound to the given references.
|
|
828
|
+
*
|
|
829
|
+
* @param accessor - Accessor to load documents with
|
|
830
|
+
* @param refs - Document references to load
|
|
831
|
+
* @returns Document instances in the same order as the input references
|
|
832
|
+
*/
|
|
802
833
|
function loadDocumentsForDocumentReferences(accessor, refs) {
|
|
803
834
|
return refs.map((x) => accessor.loadDocument(x));
|
|
804
835
|
}
|
|
836
|
+
/**
|
|
837
|
+
* Extracts {@link FirestoreModelKey}s from arbitrary values and loads them as {@link FirestoreDocument} instances.
|
|
838
|
+
*
|
|
839
|
+
* Convenience function that maps values through `getKey` then delegates to {@link loadDocumentsForKeys}.
|
|
840
|
+
*
|
|
841
|
+
* @param accessor - Accessor to load documents with
|
|
842
|
+
* @param values - Source values to extract keys from
|
|
843
|
+
* @param getKey - Extracts a model key (full Firestore path) from each value
|
|
844
|
+
* @returns Document instances in the same order as the input values
|
|
845
|
+
*/
|
|
805
846
|
function loadDocumentsForKeysFromValues(accessor, values, getKey) {
|
|
806
847
|
return loadDocumentsForKeys(accessor, values.map(getKey));
|
|
807
848
|
}
|
|
849
|
+
/**
|
|
850
|
+
* Loads {@link FirestoreDocument} instances from an array of full Firestore document paths (keys).
|
|
851
|
+
*
|
|
852
|
+
* Each key is passed to `accessor.loadDocumentForKey()`. No network calls are made.
|
|
853
|
+
*
|
|
854
|
+
* @param accessor - Accessor to load documents with
|
|
855
|
+
* @param keys - Full Firestore document paths (e.g. `'users/abc123'`)
|
|
856
|
+
* @returns Document instances in the same order as the input keys
|
|
857
|
+
*/
|
|
808
858
|
function loadDocumentsForKeys(accessor, keys) {
|
|
809
859
|
return keys.map((x) => accessor.loadDocumentForKey(x));
|
|
810
860
|
}
|
|
861
|
+
/**
|
|
862
|
+
* Extracts {@link FirestoreModelId}s from arbitrary values and loads them as {@link FirestoreDocument} instances.
|
|
863
|
+
*
|
|
864
|
+
* Convenience function that maps values through `getId` then delegates to {@link loadDocumentsForIds}.
|
|
865
|
+
* Requires a full {@link FirestoreDocumentAccessor} (not limited) because loading by ID requires collection context.
|
|
866
|
+
*
|
|
867
|
+
* @param accessor - Accessor to load documents with (must have collection context for ID resolution)
|
|
868
|
+
* @param values - Source values to extract IDs from
|
|
869
|
+
* @param getId - Extracts a model ID from each value
|
|
870
|
+
* @returns Document instances in the same order as the input values
|
|
871
|
+
*/
|
|
811
872
|
function loadDocumentsForIdsFromValues(accessor, values, getId) {
|
|
812
873
|
return loadDocumentsForIds(accessor, values.map(getId));
|
|
813
874
|
}
|
|
875
|
+
/**
|
|
876
|
+
* Loads {@link FirestoreDocument} instances from an array of document IDs relative to the accessor's collection.
|
|
877
|
+
*
|
|
878
|
+
* Each ID is passed to `accessor.loadDocumentForId()`. Requires a full {@link FirestoreDocumentAccessor}
|
|
879
|
+
* because ID-based loading needs the collection reference to resolve the full path. No network calls are made.
|
|
880
|
+
*
|
|
881
|
+
* @param accessor - Accessor to load documents with (must have collection context)
|
|
882
|
+
* @param ids - Document IDs within the accessor's collection
|
|
883
|
+
* @returns Document instances in the same order as the input IDs
|
|
884
|
+
*/
|
|
814
885
|
function loadDocumentsForIds(accessor, ids) {
|
|
815
886
|
return ids.map((x) => accessor.loadDocumentForId(x));
|
|
816
887
|
}
|
|
817
888
|
/**
|
|
818
|
-
*
|
|
889
|
+
* Creates a {@link FirestoreDocumentLoader} from a {@link LimitedFirestoreDocumentAccessorContextExtension}.
|
|
819
890
|
*
|
|
820
|
-
*
|
|
821
|
-
* @
|
|
891
|
+
* The returned loader resolves the appropriate accessor based on whether a transaction is provided,
|
|
892
|
+
* then delegates to {@link loadDocumentsForDocumentReferences}.
|
|
893
|
+
*
|
|
894
|
+
* @param accessorContext - Context that provides accessors for both default and transactional use
|
|
895
|
+
* @returns A loader function that converts document references to document instances
|
|
822
896
|
*/
|
|
823
897
|
function firestoreDocumentLoader(accessorContext) {
|
|
824
898
|
return (references, transaction) => {
|
|
@@ -827,10 +901,16 @@ function firestoreDocumentLoader(accessorContext) {
|
|
|
827
901
|
};
|
|
828
902
|
}
|
|
829
903
|
/**
|
|
830
|
-
*
|
|
904
|
+
* Creates a {@link FirestoreDocumentSnapshotPairsLoader} from a {@link LimitedFirestoreDocumentAccessorContextExtension}.
|
|
831
905
|
*
|
|
832
|
-
*
|
|
833
|
-
* @
|
|
906
|
+
* The returned loader resolves the appropriate accessor based on whether a transaction is provided,
|
|
907
|
+
* then maps each snapshot to a {@link FirestoreDocumentSnapshotDataPair} using {@link firestoreDocumentSnapshotPairsLoaderInstance}.
|
|
908
|
+
*
|
|
909
|
+
* Also satisfies the {@link FirestoreQueryDocumentSnapshotPairsLoader} type since the implementation
|
|
910
|
+
* handles both {@link DocumentSnapshot} and {@link QueryDocumentSnapshot} inputs.
|
|
911
|
+
*
|
|
912
|
+
* @param accessorContext - Context that provides accessors for both default and transactional use
|
|
913
|
+
* @returns A loader function that converts snapshots to document-snapshot-data pairs
|
|
834
914
|
*/
|
|
835
915
|
function firestoreDocumentSnapshotPairsLoader(accessorContext) {
|
|
836
916
|
return (snapshots, transaction) => {
|
|
@@ -840,10 +920,15 @@ function firestoreDocumentSnapshotPairsLoader(accessorContext) {
|
|
|
840
920
|
};
|
|
841
921
|
}
|
|
842
922
|
/**
|
|
843
|
-
*
|
|
923
|
+
* Creates a {@link FirestoreDocumentSnapshotPairsLoaderInstance} bound to a specific accessor.
|
|
844
924
|
*
|
|
845
|
-
* @
|
|
846
|
-
* @
|
|
925
|
+
* The returned function converts a snapshot into a {@link FirestoreDocumentSnapshotDataPair} by:
|
|
926
|
+
* 1. Extracting data with `id`/`key` fields via {@link documentDataWithIdAndKey}
|
|
927
|
+
* 2. Loading the document from the snapshot's reference via `accessor.loadDocument()`
|
|
928
|
+
* 3. Combining all three into a single pair object
|
|
929
|
+
*
|
|
930
|
+
* @param accessor - The accessor to bind for document loading
|
|
931
|
+
* @returns A reusable function that converts snapshots to pairs using the bound accessor
|
|
847
932
|
*/
|
|
848
933
|
function firestoreDocumentSnapshotPairsLoaderInstance(accessor) {
|
|
849
934
|
const fn = ((snapshot) => {
|
|
@@ -860,10 +945,10 @@ function firestoreDocumentSnapshotPairsLoaderInstance(accessor) {
|
|
|
860
945
|
return fn;
|
|
861
946
|
}
|
|
862
947
|
/**
|
|
863
|
-
*
|
|
948
|
+
* Alias for {@link firestoreDocumentSnapshotPairsLoader}, typed specifically as a {@link FirestoreQueryDocumentSnapshotPairsLoader}.
|
|
864
949
|
*
|
|
865
|
-
*
|
|
866
|
-
*
|
|
950
|
+
* Use this when you know all input snapshots are from a query and want the stronger return type
|
|
951
|
+
* that guarantees `data` is non-nullish.
|
|
867
952
|
*/
|
|
868
953
|
const firestoreQueryDocumentSnapshotPairsLoader = firestoreDocumentSnapshotPairsLoader;
|
|
869
954
|
function documentData(snapshot, withId = false) {
|
|
@@ -885,11 +970,14 @@ function documentDataWithIdAndKey(snapshot) {
|
|
|
885
970
|
return data;
|
|
886
971
|
}
|
|
887
972
|
/**
|
|
888
|
-
*
|
|
973
|
+
* Mutates the input data object to include `id` and `key` fields from a {@link DocumentSnapshot}.
|
|
889
974
|
*
|
|
890
|
-
*
|
|
891
|
-
*
|
|
892
|
-
*
|
|
975
|
+
* Sets `data.id` to `snapshot.id` and `data.key` to `snapshot.ref.path`. The data object
|
|
976
|
+
* is modified in-place and also returned for chaining convenience.
|
|
977
|
+
*
|
|
978
|
+
* @param data - The data object to augment (mutated in-place)
|
|
979
|
+
* @param snapshot - Source of the `id` and `key` values
|
|
980
|
+
* @returns The same data object, now typed as {@link DocumentDataWithIdAndKey}
|
|
893
981
|
*/
|
|
894
982
|
function setIdAndKeyFromSnapshotOnDocumentData(data, snapshot) {
|
|
895
983
|
const target = data;
|
|
@@ -898,11 +986,15 @@ function setIdAndKeyFromSnapshotOnDocumentData(data, snapshot) {
|
|
|
898
986
|
return target;
|
|
899
987
|
}
|
|
900
988
|
/**
|
|
901
|
-
*
|
|
989
|
+
* Mutates the input data object to include `id` and `key` fields from a model reference.
|
|
902
990
|
*
|
|
903
|
-
* @
|
|
904
|
-
* @
|
|
905
|
-
*
|
|
991
|
+
* Similar to {@link setIdAndKeyFromSnapshotOnDocumentData}, but sources the values from a
|
|
992
|
+
* {@link FirestoreModelKeyRef} & {@link FirestoreModelIdRef} instead of a snapshot.
|
|
993
|
+
* The data object is modified in-place and also returned for chaining convenience.
|
|
994
|
+
*
|
|
995
|
+
* @param data - The data object to augment (mutated in-place)
|
|
996
|
+
* @param modelRef - Source of the `id` and `key` values
|
|
997
|
+
* @returns The same data object, now typed as {@link DocumentDataWithIdAndKey}
|
|
906
998
|
*/
|
|
907
999
|
function setIdAndKeyFromKeyIdRefOnDocumentData(data, modelRef) {
|
|
908
1000
|
const target = data;
|
|
@@ -911,47 +1003,156 @@ function setIdAndKeyFromKeyIdRefOnDocumentData(data, modelRef) {
|
|
|
911
1003
|
return target;
|
|
912
1004
|
}
|
|
913
1005
|
/**
|
|
914
|
-
*
|
|
1006
|
+
* Fetches a document's snapshot and passes it to a `use` callback, following the {@link UseAsync} pattern.
|
|
915
1007
|
*
|
|
916
|
-
*
|
|
917
|
-
*
|
|
918
|
-
*
|
|
919
|
-
* @
|
|
1008
|
+
* If `document` is nullish, the `use` callback is not invoked and `defaultValue` is returned instead.
|
|
1009
|
+
* If `document` exists but the snapshot is nullish (shouldn't happen in practice), `defaultValue` is also used.
|
|
1010
|
+
*
|
|
1011
|
+
* @param document - The document to fetch, or nullish to skip
|
|
1012
|
+
* @param use - Callback that receives the fetched snapshot and returns a result
|
|
1013
|
+
* @param defaultValue - Fallback value when `document` is nullish or the snapshot is unavailable
|
|
1014
|
+
* @returns The result of `use`, or the default value
|
|
920
1015
|
*/
|
|
921
1016
|
async function useDocumentSnapshot(document, use, defaultValue) {
|
|
922
1017
|
const snapshot = await document?.accessor.get();
|
|
923
1018
|
return useAsync(snapshot, use, defaultValue);
|
|
924
1019
|
}
|
|
925
1020
|
/**
|
|
926
|
-
*
|
|
1021
|
+
* Fetches a document's snapshot data (via `snapshot.data()`) and passes it to a `use` callback.
|
|
1022
|
+
*
|
|
1023
|
+
* Wraps {@link useDocumentSnapshot} with a mapping step that extracts raw data from the snapshot.
|
|
1024
|
+
* If the document doesn't exist (data is `undefined`), the `use` callback is not invoked
|
|
1025
|
+
* and `defaultValue` is returned instead.
|
|
1026
|
+
*
|
|
1027
|
+
* @param document - The document to fetch, or nullish to skip
|
|
1028
|
+
* @param use - Callback that receives the snapshot data and returns a result
|
|
1029
|
+
* @param defaultValue - Fallback value when the document is nullish or doesn't exist
|
|
1030
|
+
* @returns The result of `use`, or the default value
|
|
927
1031
|
*/
|
|
928
1032
|
const useDocumentSnapshotData = wrapUseAsyncFunction(useDocumentSnapshot, (x) => x.data());
|
|
929
1033
|
// MARK: Key Accessors
|
|
1034
|
+
/**
|
|
1035
|
+
* Extracts the document ID ({@link FirestoreModelId}) from a {@link FirestoreDocument}.
|
|
1036
|
+
*
|
|
1037
|
+
* Useful as a mapper function, e.g. `documents.map(firestoreModelIdFromDocument)`.
|
|
1038
|
+
*
|
|
1039
|
+
* @param document - The document to extract the ID from
|
|
1040
|
+
* @returns The document's ID (the last segment of its Firestore path)
|
|
1041
|
+
*/
|
|
930
1042
|
function firestoreModelIdFromDocument(document) {
|
|
931
1043
|
return document.id;
|
|
932
1044
|
}
|
|
1045
|
+
/**
|
|
1046
|
+
* Extracts document IDs from an array of {@link FirestoreDocument}s.
|
|
1047
|
+
*
|
|
1048
|
+
* @param documents - Documents to extract IDs from
|
|
1049
|
+
* @returns Array of document IDs in the same order as the input
|
|
1050
|
+
*/
|
|
933
1051
|
function firestoreModelIdsFromDocuments(documents) {
|
|
934
1052
|
return documents.map(firestoreModelIdFromDocument);
|
|
935
1053
|
}
|
|
1054
|
+
/**
|
|
1055
|
+
* Extracts the full Firestore path ({@link FirestoreModelKey}) from a {@link FirestoreDocument}.
|
|
1056
|
+
*
|
|
1057
|
+
* Useful as a mapper function, e.g. `documents.map(firestoreModelKeyFromDocument)`.
|
|
1058
|
+
*
|
|
1059
|
+
* @param document - The document to extract the key from
|
|
1060
|
+
* @returns The document's full Firestore path (e.g. `'users/abc123'`)
|
|
1061
|
+
*/
|
|
936
1062
|
function firestoreModelKeyFromDocument(document) {
|
|
937
1063
|
return document.key;
|
|
938
1064
|
}
|
|
1065
|
+
/**
|
|
1066
|
+
* Extracts full Firestore paths from an array of {@link FirestoreDocument}s.
|
|
1067
|
+
*
|
|
1068
|
+
* @param documents - Documents to extract keys from
|
|
1069
|
+
* @returns Array of full Firestore paths in the same order as the input
|
|
1070
|
+
*/
|
|
939
1071
|
function firestoreModelKeysFromDocuments(documents) {
|
|
940
1072
|
return documents.map(firestoreModelKeyFromDocument);
|
|
941
1073
|
}
|
|
1074
|
+
/**
|
|
1075
|
+
* Extracts the {@link DocumentReference} from a {@link FirestoreDocument}.
|
|
1076
|
+
*
|
|
1077
|
+
* Useful as a mapper function, e.g. `documents.map(documentReferenceFromDocument)`.
|
|
1078
|
+
*
|
|
1079
|
+
* @param document - The document to extract the reference from
|
|
1080
|
+
* @returns The underlying Firestore document reference
|
|
1081
|
+
*/
|
|
942
1082
|
function documentReferenceFromDocument(document) {
|
|
943
1083
|
return document.documentRef;
|
|
944
1084
|
}
|
|
1085
|
+
/**
|
|
1086
|
+
* Extracts {@link DocumentReference}s from an array of {@link FirestoreDocument}s.
|
|
1087
|
+
*
|
|
1088
|
+
* @param documents - Documents to extract references from
|
|
1089
|
+
* @returns Array of document references in the same order as the input
|
|
1090
|
+
*/
|
|
945
1091
|
function documentReferencesFromDocuments(documents) {
|
|
946
1092
|
return documents.map(documentReferenceFromDocument);
|
|
947
1093
|
}
|
|
1094
|
+
/**
|
|
1095
|
+
* Creates a {@link LimitedFirestoreDocumentAccessorSnapshotCache} that wraps the given accessor
|
|
1096
|
+
* with an in-memory {@link Map} cache so that repeated loads for the same key return the cached
|
|
1097
|
+
* promise instead of re-reading from Firestore.
|
|
1098
|
+
*
|
|
1099
|
+
* The cache stores the promise itself (not the resolved value), which means concurrent requests
|
|
1100
|
+
* for the same key that arrive before the first read completes will also be deduplicated.
|
|
1101
|
+
*
|
|
1102
|
+
* The cache lives for the lifetime of the returned object and is never invalidated, so this is
|
|
1103
|
+
* best suited for short-lived scopes (e.g. a single request or batch operation) where stale reads
|
|
1104
|
+
* are acceptable.
|
|
1105
|
+
*
|
|
1106
|
+
* @param accessor - The accessor to wrap with caching behavior
|
|
1107
|
+
* @returns A {@link LimitedFirestoreDocumentAccessorSnapshotCache} backed by the given accessor
|
|
1108
|
+
*
|
|
1109
|
+
* @example
|
|
1110
|
+
* ```typescript
|
|
1111
|
+
* const cache = limitedFirestoreDocumentAccessorSnapshotCache(accessor);
|
|
1112
|
+
*
|
|
1113
|
+
* // First call reads from Firestore; second call returns cached result
|
|
1114
|
+
* const pair = await cache.getDocumentSnapshotDataPairForKey('users/abc123');
|
|
1115
|
+
* const samePair = await cache.getDocumentSnapshotDataPairForKey('users/abc123');
|
|
1116
|
+
*
|
|
1117
|
+
* // Batch fetch with automatic deduplication
|
|
1118
|
+
* const pairs = await cache.getDocumentSnapshotDataPairsWithDataForKeys(['users/abc', 'users/def']);
|
|
1119
|
+
*
|
|
1120
|
+
* // Access the underlying accessor directly
|
|
1121
|
+
* const doc = cache.accessor.loadDocumentForKey('users/xyz');
|
|
1122
|
+
* ```
|
|
1123
|
+
*/
|
|
1124
|
+
function limitedFirestoreDocumentAccessorSnapshotCache(accessor) {
|
|
1125
|
+
const cache = new Map();
|
|
1126
|
+
function getDocumentSnapshotDataPairForKey(key) {
|
|
1127
|
+
let cached = cache.get(key);
|
|
1128
|
+
if (!cached) {
|
|
1129
|
+
const document = accessor.loadDocumentForKey(key);
|
|
1130
|
+
cached = getDocumentSnapshotDataPair(document);
|
|
1131
|
+
cache.set(key, cached);
|
|
1132
|
+
}
|
|
1133
|
+
return cached;
|
|
1134
|
+
}
|
|
1135
|
+
async function getDocumentSnapshotDataPairsForKeys(keys) {
|
|
1136
|
+
return Promise.all(keys.map((key) => getDocumentSnapshotDataPairForKey(key)));
|
|
1137
|
+
}
|
|
1138
|
+
async function getDocumentSnapshotDataPairsWithDataForKeys(keys) {
|
|
1139
|
+
const pairs = await getDocumentSnapshotDataPairsForKeys(keys);
|
|
1140
|
+
return filterMaybeArrayValues(pairs.map((pair) => (pair.data != null ? pair : undefined)));
|
|
1141
|
+
}
|
|
1142
|
+
return {
|
|
1143
|
+
accessor,
|
|
1144
|
+
getDocumentSnapshotDataPairForKey,
|
|
1145
|
+
getDocumentSnapshotDataPairsForKeys,
|
|
1146
|
+
getDocumentSnapshotDataPairsWithDataForKeys
|
|
1147
|
+
};
|
|
1148
|
+
}
|
|
948
1149
|
|
|
949
1150
|
/**
|
|
950
1151
|
* Creates an Observable that emits arrays of document snapshots for multiple documents.
|
|
951
1152
|
*
|
|
952
1153
|
* This function streams the latest snapshots for each document in the provided array.
|
|
953
1154
|
* Each time any document in the array changes, a new array containing the latest snapshots
|
|
954
|
-
* of all documents is emitted.
|
|
1155
|
+
* of all documents is emitted.
|
|
955
1156
|
*
|
|
956
1157
|
* If the input array is empty, an Observable that emits an empty array is returned.
|
|
957
1158
|
*
|
|
@@ -960,7 +1161,25 @@ function documentReferencesFromDocuments(documents) {
|
|
|
960
1161
|
* @returns Observable that emits arrays of DocumentSnapshots whenever any document changes
|
|
961
1162
|
*/
|
|
962
1163
|
function latestSnapshotsFromDocuments(documents) {
|
|
963
|
-
return documents
|
|
1164
|
+
return mapLatestSnapshotsFromDocuments(documents, map(MAP_IDENTITY));
|
|
1165
|
+
}
|
|
1166
|
+
/**
|
|
1167
|
+
* Creates an Observable that streams and transforms snapshots for multiple documents using `combineLatest`.
|
|
1168
|
+
*
|
|
1169
|
+
* Pipes each document's `accessor.stream()` through the provided `operator` before combining.
|
|
1170
|
+
* This ensures the transformation runs per-document when only one document changes, rather than
|
|
1171
|
+
* re-mapping all snapshots on every emission.
|
|
1172
|
+
*
|
|
1173
|
+
* {@link latestSnapshotsFromDocuments} delegates to this function with an identity operator.
|
|
1174
|
+
*
|
|
1175
|
+
* Returns `of([])` for an empty input array.
|
|
1176
|
+
*
|
|
1177
|
+
* @param documents - Documents to stream from
|
|
1178
|
+
* @param operator - RxJS operator applied to each document's snapshot stream individually
|
|
1179
|
+
* @returns Observable emitting an array of transformed values whenever any document changes
|
|
1180
|
+
*/
|
|
1181
|
+
function mapLatestSnapshotsFromDocuments(documents, operator) {
|
|
1182
|
+
return documents.length ? combineLatest(documents.map((x) => x.accessor.stream().pipe(operator))) : of([]);
|
|
964
1183
|
}
|
|
965
1184
|
/**
|
|
966
1185
|
* Creates an Observable that emits arrays of document data for multiple documents.
|
|
@@ -968,7 +1187,7 @@ function latestSnapshotsFromDocuments(documents) {
|
|
|
968
1187
|
* This function streams the latest data for each document in the provided array.
|
|
969
1188
|
* Each time any document in the array changes, a new array containing the latest data
|
|
970
1189
|
* of all documents is emitted. Document data includes both the document content and
|
|
971
|
-
* metadata like document ID and key.
|
|
1190
|
+
* metadata like document ID and key.
|
|
972
1191
|
*
|
|
973
1192
|
* Non-existent documents are filtered out of the results automatically.
|
|
974
1193
|
*
|
|
@@ -976,8 +1195,8 @@ function latestSnapshotsFromDocuments(documents) {
|
|
|
976
1195
|
* @param documents - Array of document instances to stream data for
|
|
977
1196
|
* @returns Observable that emits arrays of document data whenever any document changes
|
|
978
1197
|
*/
|
|
979
|
-
function
|
|
980
|
-
return latestSnapshotsFromDocuments(documents).pipe(dataFromDocumentSnapshots()
|
|
1198
|
+
function streamDocumentSnapshotsData(documents) {
|
|
1199
|
+
return latestSnapshotsFromDocuments(documents).pipe(dataFromDocumentSnapshots());
|
|
981
1200
|
}
|
|
982
1201
|
/**
|
|
983
1202
|
* Creates an RxJS operator that transforms arrays of DocumentSnapshots into arrays of document data.
|
|
@@ -992,6 +1211,53 @@ function latestDataFromDocuments(documents) {
|
|
|
992
1211
|
function dataFromDocumentSnapshots() {
|
|
993
1212
|
return map((x) => getDataFromDocumentSnapshots(x));
|
|
994
1213
|
}
|
|
1214
|
+
// MARK: Streaming Document Snapshot Pairs
|
|
1215
|
+
/**
|
|
1216
|
+
* Streams {@link FirestoreDocumentSnapshotDataPair}s for multiple documents using `combineLatest`.
|
|
1217
|
+
*
|
|
1218
|
+
* Each document's `accessor.stream()` is individually piped to produce a `{ document, snapshot, data }` triplet,
|
|
1219
|
+
* then all streams are combined via `combineLatest`. This ensures the mapping only runs for the document
|
|
1220
|
+
* that actually changed. The `data` field has `id` and `key` fields injected via {@link documentDataWithIdAndKey},
|
|
1221
|
+
* and will be `undefined` for documents that don't exist in Firestore.
|
|
1222
|
+
*
|
|
1223
|
+
* Returns `of([])` for an empty input array.
|
|
1224
|
+
*
|
|
1225
|
+
* This is the streaming equivalent of {@link import('./document.utility').getDocumentSnapshotDataPairs}.
|
|
1226
|
+
*
|
|
1227
|
+
* @param documents - Documents to stream snapshot-data pairs for
|
|
1228
|
+
* @returns Observable emitting snapshot-data pairs whenever any document changes
|
|
1229
|
+
*/
|
|
1230
|
+
function streamDocumentSnapshotDataPairs(documents) {
|
|
1231
|
+
return documents.length
|
|
1232
|
+
? combineLatest(documents.map((document) => document.accessor.stream().pipe(map((snapshot) => ({
|
|
1233
|
+
document,
|
|
1234
|
+
snapshot,
|
|
1235
|
+
data: documentDataWithIdAndKey(snapshot)
|
|
1236
|
+
})))))
|
|
1237
|
+
: of([]);
|
|
1238
|
+
}
|
|
1239
|
+
/**
|
|
1240
|
+
* Streams {@link FirestoreDocumentSnapshotDataPairWithData}s for multiple documents, filtering out non-existent documents.
|
|
1241
|
+
*
|
|
1242
|
+
* Builds on {@link streamDocumentSnapshotDataPairs} and filters each emission to include only pairs where
|
|
1243
|
+
* `data` is non-nullish (i.e., the document exists in Firestore). The filtered array may be shorter than
|
|
1244
|
+
* the input `documents` array and may change length over time as documents are created or deleted.
|
|
1245
|
+
*
|
|
1246
|
+
* Returns `of([])` for an empty input array.
|
|
1247
|
+
*
|
|
1248
|
+
* This is the streaming equivalent of {@link import('./document.utility').getDocumentSnapshotDataPairsWithData}.
|
|
1249
|
+
*
|
|
1250
|
+
* @param documents - Documents to stream snapshot-data pairs for
|
|
1251
|
+
* @returns Observable emitting snapshot-data pairs for existing documents only, whenever any document changes
|
|
1252
|
+
*/
|
|
1253
|
+
function streamDocumentSnapshotDataPairsWithData(documents) {
|
|
1254
|
+
return streamDocumentSnapshotDataPairs(documents).pipe(map((pairs) => pairs.filter((pair) => pair.data != null)));
|
|
1255
|
+
}
|
|
1256
|
+
// MARK: Compat
|
|
1257
|
+
/**
|
|
1258
|
+
* @deprecated Use {@link streamDocumentSnapshotsData} instead.
|
|
1259
|
+
*/
|
|
1260
|
+
const latestDataFromDocuments = streamDocumentSnapshotsData;
|
|
995
1261
|
|
|
996
1262
|
// A set of copied types from @google-cloud/firestore and firebase/firestore to allow cross-compatability.
|
|
997
1263
|
/* eslint-disable */
|
|
@@ -2147,20 +2413,14 @@ function firebaseQueryItemAccumulator(iteration, mapItem) {
|
|
|
2147
2413
|
}
|
|
2148
2414
|
|
|
2149
2415
|
/**
|
|
2150
|
-
* Creates a
|
|
2416
|
+
* Creates a {@link FirestoreQueryConstraint} with the given type identifier and data.
|
|
2151
2417
|
*
|
|
2152
|
-
*
|
|
2153
|
-
* @
|
|
2154
|
-
* @param data - The constraint data
|
|
2155
|
-
* @returns A Firestore query constraint object
|
|
2156
|
-
*/
|
|
2157
|
-
/**
|
|
2158
|
-
* Creates a Firestore query constraint.
|
|
2418
|
+
* This is the low-level factory used by all constraint builder functions (e.g., {@link where},
|
|
2419
|
+
* {@link limit}, {@link orderBy}). Most callers should use those typed builders instead.
|
|
2159
2420
|
*
|
|
2160
|
-
* @
|
|
2161
|
-
* @param
|
|
2162
|
-
* @
|
|
2163
|
-
* @returns A Firestore query constraint object
|
|
2421
|
+
* @param type - The constraint type identifier (e.g., 'where', 'limit')
|
|
2422
|
+
* @param data - The constraint-specific configuration data
|
|
2423
|
+
* @returns A typed constraint object
|
|
2164
2424
|
*/
|
|
2165
2425
|
function firestoreQueryConstraint(type, data) {
|
|
2166
2426
|
return {
|
|
@@ -2660,6 +2920,17 @@ function filterDisallowedFirestoreItemPageIteratorInputConstraints(constraints)
|
|
|
2660
2920
|
* This value is used when no itemsPerPage is explicitly specified in the configuration.
|
|
2661
2921
|
*/
|
|
2662
2922
|
const DEFAULT_FIRESTORE_ITEM_PAGE_ITERATOR_ITEMS_PER_PAGE = 50;
|
|
2923
|
+
/**
|
|
2924
|
+
* Creates a {@link FirestoreItemPageIteratorDelegate} that handles cursor-based Firestore pagination.
|
|
2925
|
+
*
|
|
2926
|
+
* The delegate implements `loadItemsForPage` by:
|
|
2927
|
+
* 1. Retrieving the cursor document from the previous page's results
|
|
2928
|
+
* 2. Building a query with the configured constraints, `startAfter` cursor, and `limit`
|
|
2929
|
+
* 3. Executing the query and wrapping the results in a {@link FirestoreItemPageQueryResult}
|
|
2930
|
+
* with `reload()` and `stream()` capabilities
|
|
2931
|
+
*
|
|
2932
|
+
* @returns A delegate instance for use with {@link ItemPageIterator}
|
|
2933
|
+
*/
|
|
2663
2934
|
function makeFirestoreItemPageIteratorDelegate() {
|
|
2664
2935
|
return {
|
|
2665
2936
|
loadItemsForPage: (request) => {
|
|
@@ -2817,7 +3088,14 @@ function _firestoreItemPageIterationWithSnapshotIteration(snapshotIteration) {
|
|
|
2817
3088
|
return result;
|
|
2818
3089
|
}
|
|
2819
3090
|
/**
|
|
2820
|
-
* Creates a
|
|
3091
|
+
* Creates a factory function for generating fixed-set Firestore pagination instances.
|
|
3092
|
+
*
|
|
3093
|
+
* The returned factory takes an array of document references and an optional filter,
|
|
3094
|
+
* producing a pagination instance that iterates over those specific documents in pages.
|
|
3095
|
+
*
|
|
3096
|
+
* @param baseConfig - Base pagination configuration (query reference, driver, page size)
|
|
3097
|
+
* @param documentAccessor - Accessor used to load document snapshots from the references
|
|
3098
|
+
* @returns A factory function that creates fixed-set pagination instances
|
|
2821
3099
|
*/
|
|
2822
3100
|
function firestoreFixedItemPageIterationFactory(baseConfig, documentAccessor) {
|
|
2823
3101
|
return (items, filter) => {
|
|
@@ -2834,7 +3112,17 @@ function firestoreFixedItemPageIterationFactory(baseConfig, documentAccessor) {
|
|
|
2834
3112
|
};
|
|
2835
3113
|
}
|
|
2836
3114
|
/**
|
|
2837
|
-
* Creates a
|
|
3115
|
+
* Creates a pagination instance that iterates over a fixed set of document references.
|
|
3116
|
+
*
|
|
3117
|
+
* Unlike {@link firestoreItemPageIteration} which queries Firestore dynamically, this function
|
|
3118
|
+
* paginates through a pre-determined list of document references. Each page loads the next
|
|
3119
|
+
* slice of references via the document accessor and produces a synthetic {@link QuerySnapshot}.
|
|
3120
|
+
*
|
|
3121
|
+
* This is useful for paginating over known document sets (e.g., from a pre-computed list
|
|
3122
|
+
* of references) without executing Firestore queries.
|
|
3123
|
+
*
|
|
3124
|
+
* @param config - Configuration including the document references, accessor, and pagination settings
|
|
3125
|
+
* @returns A pagination instance that pages through the fixed reference set
|
|
2838
3126
|
*/
|
|
2839
3127
|
function firestoreFixedItemPageIteration(config) {
|
|
2840
3128
|
const { items, documentAccessor } = config;
|
|
@@ -3051,24 +3339,47 @@ function readFirestoreModelKeyFromDocumentSnapshot(snapshot) {
|
|
|
3051
3339
|
/**
|
|
3052
3340
|
* @module Firestore Query Iteration
|
|
3053
3341
|
*
|
|
3054
|
-
*
|
|
3055
|
-
*
|
|
3056
|
-
*
|
|
3057
|
-
*
|
|
3342
|
+
* Provides a layered system for iterating through Firestore query results using
|
|
3343
|
+
* cursor-based pagination ("checkpoints"). Each layer adds convenience on top of the
|
|
3344
|
+
* one below:
|
|
3345
|
+
*
|
|
3346
|
+
* 1. **Checkpoints** ({@link iterateFirestoreDocumentSnapshotCheckpoints}) — core pagination engine
|
|
3347
|
+
* 2. **Batches** ({@link iterateFirestoreDocumentSnapshotBatches}) — subdivides checkpoints into fixed-size batches
|
|
3348
|
+
* 3. **Snapshots** ({@link iterateFirestoreDocumentSnapshots}) — processes individual snapshots
|
|
3349
|
+
* 4. **Pairs** ({@link iterateFirestoreDocumentSnapshotPairs}) — loads typed document wrappers per snapshot
|
|
3350
|
+
*
|
|
3351
|
+
* Batch variants with document pairs are also available:
|
|
3352
|
+
* - {@link iterateFirestoreDocumentSnapshotPairBatches} — batch processing with typed document access
|
|
3353
|
+
*
|
|
3354
|
+
* All functions support configurable limits (`limitPerCheckpoint`, `totalSnapshotsLimit`),
|
|
3355
|
+
* concurrency (`maxParallelCheckpoints`), rate limiting (`waitBetweenCheckpoints`),
|
|
3356
|
+
* snapshot filtering, and repeat cursor detection.
|
|
3058
3357
|
*/
|
|
3059
3358
|
/**
|
|
3060
|
-
* Iterates through
|
|
3359
|
+
* Iterates through Firestore query results, loading each snapshot as a
|
|
3360
|
+
* {@link FirestoreDocumentSnapshotDataPairWithData} before processing.
|
|
3061
3361
|
*
|
|
3062
|
-
*
|
|
3063
|
-
*
|
|
3064
|
-
*
|
|
3065
|
-
*
|
|
3362
|
+
* Built on {@link iterateFirestoreDocumentSnapshots}, this adds an automatic document
|
|
3363
|
+
* loading step: each raw snapshot is resolved through the `documentAccessor` to produce
|
|
3364
|
+
* a pair containing both the typed {@link FirestoreDocument} and its snapshot data.
|
|
3365
|
+
* This is the highest-level iteration function — use it when your callback needs
|
|
3366
|
+
* document-level operations (updates, deletes) alongside the snapshot data.
|
|
3066
3367
|
*
|
|
3067
|
-
* @
|
|
3068
|
-
* @
|
|
3069
|
-
*
|
|
3070
|
-
* @
|
|
3071
|
-
*
|
|
3368
|
+
* @param config - Iteration config including the document accessor and per-pair callback
|
|
3369
|
+
* @returns Checkpoint-level statistics (total checkpoints, snapshots visited, limit status)
|
|
3370
|
+
*
|
|
3371
|
+
* @example
|
|
3372
|
+
* ```typescript
|
|
3373
|
+
* const result = await iterateFirestoreDocumentSnapshotPairs({
|
|
3374
|
+
* queryFactory,
|
|
3375
|
+
* constraintsFactory: [where('status', '==', 'pending')],
|
|
3376
|
+
* limitPerCheckpoint: 100,
|
|
3377
|
+
* documentAccessor: collection.documentAccessor(),
|
|
3378
|
+
* iterateSnapshotPair: async (pair) => {
|
|
3379
|
+
* await pair.document.accessor.set({ ...pair.data, status: 'processed' });
|
|
3380
|
+
* }
|
|
3381
|
+
* });
|
|
3382
|
+
* ```
|
|
3072
3383
|
*/
|
|
3073
3384
|
async function iterateFirestoreDocumentSnapshotPairs(config) {
|
|
3074
3385
|
const { iterateSnapshotPair, documentAccessor } = config;
|
|
@@ -3082,16 +3393,32 @@ async function iterateFirestoreDocumentSnapshotPairs(config) {
|
|
|
3082
3393
|
});
|
|
3083
3394
|
}
|
|
3084
3395
|
/**
|
|
3085
|
-
* Iterates through
|
|
3396
|
+
* Iterates through Firestore query results, processing each document snapshot individually.
|
|
3086
3397
|
*
|
|
3087
|
-
*
|
|
3088
|
-
*
|
|
3089
|
-
*
|
|
3398
|
+
* Built on {@link iterateFirestoreDocumentSnapshotBatches} with `maxParallelCheckpoints: 1`,
|
|
3399
|
+
* this unwraps each checkpoint's snapshots and processes them one-by-one via
|
|
3400
|
+
* {@link performAsyncTasks} (sequential by default). Use `snapshotsPerformTasksConfig`
|
|
3401
|
+
* to enable parallel snapshot processing within each checkpoint.
|
|
3090
3402
|
*
|
|
3091
|
-
*
|
|
3092
|
-
* @
|
|
3093
|
-
*
|
|
3094
|
-
* @
|
|
3403
|
+
* For document-level operations (needing the typed {@link FirestoreDocument} wrapper),
|
|
3404
|
+
* use {@link iterateFirestoreDocumentSnapshotPairs} instead.
|
|
3405
|
+
*
|
|
3406
|
+
* @param config - Iteration config including the per-snapshot callback
|
|
3407
|
+
* @returns Checkpoint-level statistics (total checkpoints, snapshots visited, limit status)
|
|
3408
|
+
*
|
|
3409
|
+
* @example
|
|
3410
|
+
* ```typescript
|
|
3411
|
+
* const result = await iterateFirestoreDocumentSnapshots({
|
|
3412
|
+
* queryFactory,
|
|
3413
|
+
* constraintsFactory: [where('active', '==', true)],
|
|
3414
|
+
* limitPerCheckpoint: 200,
|
|
3415
|
+
* totalSnapshotsLimit: 1000,
|
|
3416
|
+
* iterateSnapshot: async (snapshot) => {
|
|
3417
|
+
* const data = snapshot.data();
|
|
3418
|
+
* await externalApi.sync(data);
|
|
3419
|
+
* }
|
|
3420
|
+
* });
|
|
3421
|
+
* ```
|
|
3095
3422
|
*/
|
|
3096
3423
|
async function iterateFirestoreDocumentSnapshots(config) {
|
|
3097
3424
|
const { iterateSnapshot, performTasksConfig, snapshotsPerformTasksConfig } = config;
|
|
@@ -3108,10 +3435,32 @@ async function iterateFirestoreDocumentSnapshots(config) {
|
|
|
3108
3435
|
});
|
|
3109
3436
|
}
|
|
3110
3437
|
/**
|
|
3111
|
-
* Iterates through
|
|
3438
|
+
* Iterates through Firestore query results in batches, loading each batch as
|
|
3439
|
+
* {@link FirestoreDocumentSnapshotDataPairWithData} instances before processing.
|
|
3112
3440
|
*
|
|
3113
|
-
* @
|
|
3114
|
-
*
|
|
3441
|
+
* Built on {@link iterateFirestoreDocumentSnapshotBatches} with `maxParallelCheckpoints: 1`.
|
|
3442
|
+
* Each batch of raw snapshots is resolved through the `documentAccessor` to produce
|
|
3443
|
+
* typed document-snapshot pairs. Use this when you need batch-level operations with
|
|
3444
|
+
* typed document access (e.g., bulk updates, batch writes).
|
|
3445
|
+
*
|
|
3446
|
+
* @param config - Iteration config including the document accessor and per-batch callback
|
|
3447
|
+
* @returns Checkpoint-level statistics (total checkpoints, snapshots visited, limit status)
|
|
3448
|
+
*
|
|
3449
|
+
* @example
|
|
3450
|
+
* ```typescript
|
|
3451
|
+
* const result = await iterateFirestoreDocumentSnapshotPairBatches({
|
|
3452
|
+
* queryFactory,
|
|
3453
|
+
* constraintsFactory: [where('needsMigration', '==', true)],
|
|
3454
|
+
* limitPerCheckpoint: 500,
|
|
3455
|
+
* batchSize: 50,
|
|
3456
|
+
* documentAccessor: collection.documentAccessor(),
|
|
3457
|
+
* iterateSnapshotPairsBatch: async (pairs, batchIndex) => {
|
|
3458
|
+
* const writeBatch = firestore.batch();
|
|
3459
|
+
* pairs.forEach((pair) => writeBatch.update(pair.document.documentRef, { migrated: true }));
|
|
3460
|
+
* await writeBatch.commit();
|
|
3461
|
+
* }
|
|
3462
|
+
* });
|
|
3463
|
+
* ```
|
|
3115
3464
|
*/
|
|
3116
3465
|
async function iterateFirestoreDocumentSnapshotPairBatches(config) {
|
|
3117
3466
|
const { iterateSnapshotPairsBatch, documentAccessor } = config;
|
|
@@ -3132,10 +3481,32 @@ async function iterateFirestoreDocumentSnapshotPairBatches(config) {
|
|
|
3132
3481
|
*/
|
|
3133
3482
|
const DEFAULT_ITERATE_FIRESTORE_DOCUMENT_SNAPSHOT_BATCHES_BATCH_SIZE = 25;
|
|
3134
3483
|
/**
|
|
3135
|
-
* Iterates through
|
|
3484
|
+
* Iterates through Firestore query results by subdividing each checkpoint into smaller batches.
|
|
3136
3485
|
*
|
|
3137
|
-
* @
|
|
3138
|
-
*
|
|
3486
|
+
* Built on {@link iterateFirestoreDocumentSnapshotCheckpoints}, this function takes each
|
|
3487
|
+
* checkpoint's snapshots and splits them into batches (default size: 25). Batches are
|
|
3488
|
+
* processed via {@link performAsyncTasks}, sequential by default. Use this when operations
|
|
3489
|
+
* have size limits (e.g., Firestore batch writes) or benefit from controlled chunk sizes.
|
|
3490
|
+
*
|
|
3491
|
+
* For per-snapshot processing, use {@link iterateFirestoreDocumentSnapshots}.
|
|
3492
|
+
* For batch processing with typed document pairs, use {@link iterateFirestoreDocumentSnapshotPairBatches}.
|
|
3493
|
+
*
|
|
3494
|
+
* @param config - Iteration config including batch size and per-batch callback
|
|
3495
|
+
* @returns Checkpoint-level statistics (total checkpoints, snapshots visited, limit status)
|
|
3496
|
+
*
|
|
3497
|
+
* @example
|
|
3498
|
+
* ```typescript
|
|
3499
|
+
* const result = await iterateFirestoreDocumentSnapshotBatches({
|
|
3500
|
+
* queryFactory,
|
|
3501
|
+
* constraintsFactory: [where('type', '==', 'order')],
|
|
3502
|
+
* limitPerCheckpoint: 500,
|
|
3503
|
+
* batchSize: 100,
|
|
3504
|
+
* iterateSnapshotBatch: async (snapshots, batchIndex) => {
|
|
3505
|
+
* const data = snapshots.map((s) => s.data());
|
|
3506
|
+
* await analytics.trackBatch(data);
|
|
3507
|
+
* }
|
|
3508
|
+
* });
|
|
3509
|
+
* ```
|
|
3139
3510
|
*/
|
|
3140
3511
|
async function iterateFirestoreDocumentSnapshotBatches(config) {
|
|
3141
3512
|
const { iterateSnapshotBatch, batchSizeForSnapshots: inputBatchSizeForSnapshots, performTasksConfig, batchSize: inputBatchSize } = config;
|
|
@@ -3161,29 +3532,75 @@ async function iterateFirestoreDocumentSnapshotBatches(config) {
|
|
|
3161
3532
|
});
|
|
3162
3533
|
}
|
|
3163
3534
|
/**
|
|
3164
|
-
* Creates a
|
|
3535
|
+
* Creates a checkpoint filter that deduplicates documents across checkpoints.
|
|
3165
3536
|
*
|
|
3166
|
-
* Repeat documents can
|
|
3167
|
-
*
|
|
3537
|
+
* Repeat documents can appear when a document is updated during iteration and
|
|
3538
|
+
* re-matches the query in a subsequent checkpoint. This factory returns a stateful
|
|
3539
|
+
* filter that tracks seen document keys and removes duplicates.
|
|
3168
3540
|
*
|
|
3169
|
-
*
|
|
3170
|
-
*
|
|
3541
|
+
* The filter maintains state across checkpoints — use a single instance for the
|
|
3542
|
+
* entire iteration run. Pair with `handleRepeatCursor: false` to also terminate
|
|
3543
|
+
* iteration when cursor-level repeats are detected.
|
|
3544
|
+
*
|
|
3545
|
+
* @param readKeyFunction - Extracts a unique key from each snapshot; defaults to `snapshot.id`
|
|
3546
|
+
* @returns A stateful filter function suitable for `filterCheckpointSnapshots`
|
|
3547
|
+
*
|
|
3548
|
+
* @example
|
|
3549
|
+
* ```typescript
|
|
3550
|
+
* const result = await iterateFirestoreDocumentSnapshotCheckpoints({
|
|
3551
|
+
* queryFactory,
|
|
3552
|
+
* constraintsFactory: [orderBy('updatedAt')],
|
|
3553
|
+
* limitPerCheckpoint: 100,
|
|
3554
|
+
* filterCheckpointSnapshots: filterRepeatCheckpointSnapshots(),
|
|
3555
|
+
* handleRepeatCursor: false,
|
|
3556
|
+
* iterateCheckpoint: async (snapshots) => {
|
|
3557
|
+
* return snapshots.map((s) => s.data());
|
|
3558
|
+
* }
|
|
3559
|
+
* });
|
|
3560
|
+
* ```
|
|
3171
3561
|
*/
|
|
3172
3562
|
function filterRepeatCheckpointSnapshots(readKeyFunction = (x) => x.id) {
|
|
3173
3563
|
const allowOnceFilter = allowValueOnceFilter(readKeyFunction);
|
|
3174
3564
|
return async (snapshots) => snapshots.filter(allowOnceFilter);
|
|
3175
3565
|
}
|
|
3176
3566
|
/**
|
|
3177
|
-
*
|
|
3567
|
+
* Core cursor-based pagination engine for iterating through Firestore query results.
|
|
3178
3568
|
*
|
|
3179
|
-
* This is the
|
|
3180
|
-
*
|
|
3181
|
-
*
|
|
3569
|
+
* This is the foundational function in the Firestore iteration hierarchy. It drives
|
|
3570
|
+
* sequential cursor-based pagination: each "checkpoint" executes a Firestore query,
|
|
3571
|
+
* uses the last document as a `startAfter` cursor for the next query, and passes
|
|
3572
|
+
* results to the `iterateCheckpoint` callback.
|
|
3182
3573
|
*
|
|
3183
|
-
*
|
|
3184
|
-
*
|
|
3185
|
-
*
|
|
3186
|
-
*
|
|
3574
|
+
* The iteration loop continues until one of these conditions is met:
|
|
3575
|
+
* - A query returns no results (no more matching documents)
|
|
3576
|
+
* - The `totalSnapshotsLimit` is reached
|
|
3577
|
+
* - A repeat cursor is detected and `handleRepeatCursor` returns `false`
|
|
3578
|
+
* - The effective `limitPerCheckpoint` calculates to 0 remaining
|
|
3579
|
+
*
|
|
3580
|
+
* Higher-level functions build on this:
|
|
3581
|
+
* - {@link iterateFirestoreDocumentSnapshotBatches} — subdivides checkpoints into smaller batches
|
|
3582
|
+
* - {@link iterateFirestoreDocumentSnapshots} — processes one snapshot at a time
|
|
3583
|
+
* - {@link iterateFirestoreDocumentSnapshotPairs} — loads typed document wrappers per snapshot
|
|
3584
|
+
*
|
|
3585
|
+
* @param config - Complete configuration for pagination, processing, and termination behavior
|
|
3586
|
+
* @returns Statistics including total checkpoints executed, snapshots visited, and whether the limit was hit
|
|
3587
|
+
*
|
|
3588
|
+
* @example
|
|
3589
|
+
* ```typescript
|
|
3590
|
+
* const result = await iterateFirestoreDocumentSnapshotCheckpoints({
|
|
3591
|
+
* queryFactory,
|
|
3592
|
+
* constraintsFactory: [where('createdAt', '<=', cutoffDate), orderBy('createdAt')],
|
|
3593
|
+
* limitPerCheckpoint: 200,
|
|
3594
|
+
* totalSnapshotsLimit: 5000,
|
|
3595
|
+
* handleRepeatCursor: false,
|
|
3596
|
+
* iterateCheckpoint: async (snapshots, querySnapshot) => {
|
|
3597
|
+
* return snapshots.map((s) => ({ id: s.id, data: s.data() }));
|
|
3598
|
+
* },
|
|
3599
|
+
* useCheckpointResult: (result) => {
|
|
3600
|
+
* console.log(`Checkpoint ${result.i}: processed ${result.docSnapshots.length} docs`);
|
|
3601
|
+
* }
|
|
3602
|
+
* });
|
|
3603
|
+
* ```
|
|
3187
3604
|
*/
|
|
3188
3605
|
async function iterateFirestoreDocumentSnapshotCheckpoints(config) {
|
|
3189
3606
|
const { iterateCheckpoint, filterCheckpointSnapshots: inputFilterCheckpointSnapshot, handleRepeatCursor: inputHandleRepeatCursor, waitBetweenCheckpoints, useCheckpointResult, constraintsFactory: inputConstraintsFactory, dynamicConstraints: inputDynamicConstraints, queryFactory, maxParallelCheckpoints = 1, limitPerCheckpoint: inputLimitPerCheckpoint, totalSnapshotsLimit: inputTotalSnapshotsLimit } = config;
|
|
@@ -3286,13 +3703,20 @@ async function iterateFirestoreDocumentSnapshotCheckpoints(config) {
|
|
|
3286
3703
|
}
|
|
3287
3704
|
// MARK: Utility
|
|
3288
3705
|
/**
|
|
3289
|
-
* Creates a filter that allows each document snapshot
|
|
3706
|
+
* Creates a stateful filter that allows each document snapshot through only once,
|
|
3707
|
+
* keyed by its full Firestore model path.
|
|
3290
3708
|
*
|
|
3291
|
-
*
|
|
3292
|
-
*
|
|
3709
|
+
* Unlike {@link filterRepeatCheckpointSnapshots} which uses document ID by default,
|
|
3710
|
+
* this filter uses the full document path ({@link readFirestoreModelKeyFromDocumentSnapshot}),
|
|
3711
|
+
* making it suitable for cross-collection iteration where document IDs alone may collide.
|
|
3293
3712
|
*
|
|
3294
|
-
* @
|
|
3295
|
-
*
|
|
3713
|
+
* @returns A reusable filter function that passes each unique document path exactly once
|
|
3714
|
+
*
|
|
3715
|
+
* @example
|
|
3716
|
+
* ```typescript
|
|
3717
|
+
* const onceFilter = allowDocumentSnapshotWithPathOnceFilter();
|
|
3718
|
+
* const uniqueSnapshots = allSnapshots.filter(onceFilter);
|
|
3719
|
+
* ```
|
|
3296
3720
|
*/
|
|
3297
3721
|
function allowDocumentSnapshotWithPathOnceFilter() {
|
|
3298
3722
|
return allowValueOnceFilter(readFirestoreModelKeyFromDocumentSnapshot);
|
|
@@ -9249,5 +9673,5 @@ function systemStateFirestoreCollection(firestoreContext, converters) {
|
|
|
9249
9673
|
});
|
|
9250
9674
|
}
|
|
9251
9675
|
|
|
9252
|
-
export { ALL_STORAGE_FILE_NOTIFICATION_TASK_TYPES, ALL_USER_UPLOADS_FOLDER_NAME, ALL_USER_UPLOADS_FOLDER_PATH, AbstractFirestoreDocument, AbstractFirestoreDocumentDataAccessorWrapper, AbstractFirestoreDocumentWithParent, AbstractSubscribeOrUnsubscribeToNotificationBoxParams, AbstractSubscribeToNotificationBoxParams, AppNotificationTemplateTypeInfoRecordService, BASE_MODEL_STORAGE_FILE_PATH, CALL_MODEL_APP_FUNCTION_KEY, COPY_USER_RELATED_DATA_ACCESSOR_FACTORY_FUNCTION, CREATE_NOTIFICATION_ID_REQUIRED_ERROR_CODE, CleanupSentNotificationsParams, ContextGrantedModelRolesReaderInstance, CreateNotificationBoxParams, CreateNotificationSummaryParams, CreateNotificationUserParams, CreateStorageFileGroupParams, CreateStorageFileParams, DBX_FIREBASE_SERVER_NO_AUTH_ERROR_CODE, DBX_FIREBASE_SERVER_NO_UID_ERROR_CODE, DEFAULT_DATE_CELL_RANGE_VALUE, DEFAULT_FIRESTORE_DATE_CELL_SCHEDULE_VALUE, DEFAULT_FIRESTORE_ITEM_PAGE_ITERATOR_ITEMS_PER_PAGE, DEFAULT_FIRESTORE_STRING_FIELD_VALUE, DEFAULT_FIRESTORE_UNITED_STATES_ADDRESS_VALUE, DEFAULT_FIRESTORE_WEBSITE_FILE_LINK_VALUE, DEFAULT_ITERATE_FIRESTORE_DOCUMENT_SNAPSHOT_BATCHES_BATCH_SIZE, DEFAULT_NOTIFICATION_TASK_NOTIFICATION_MODEL_KEY, DEFAULT_NOTIFICATION_TASK_SUBTASK_CLEANUP_RETRY_ATTEMPTS, DEFAULT_NOTIFICATION_TASK_SUBTASK_CLEANUP_RETRY_DELAY, DEFAULT_NOTIFICATION_TEMPLATE_TYPE, DEFAULT_QUERY_CHANGE_WATCHER_DELAY, DEFAULT_SINGLE_ITEM_FIRESTORE_COLLECTION_DOCUMENT_IDENTIFIER, DEFAULT_UPLOADED_FILE_TYPE_DETERMINATION_LEVEL, DEFAULT_WEBSITE_LINK, DeleteAllQueuedStorageFilesParams, DeleteStorageFileParams, DownloadStorageFileParams, EMPTY_STORAGE_FILE_PURPOSE_SUBGROUP, EXACT_UPLOADED_FILE_TYPE_DETERMINATION_LEVEL, FIREBASE_AUTH_NETWORK_REQUEST_ERROR, FIREBASE_AUTH_NETWORK_REQUEST_FAILED, FIREBASE_AUTH_PASSWORD_MAX_LENGTH, FIREBASE_AUTH_PASSWORD_MIN_LENGTH, FIREBASE_AUTH_USER_NOT_FOUND_ERROR, FIREBASE_AUTH_WRONG_PASSWORD, FIREBASE_DEVELOPMENT_FUNCTIONS_MAP_KEY, FIREBASE_SERVER_AUTH_CLAIMS_RESET_LAST_COM_DATE_KEY, FIREBASE_SERVER_AUTH_CLAIMS_RESET_PASSWORD_KEY, FIREBASE_SERVER_AUTH_CLAIMS_SETUP_LAST_COM_DATE_KEY, FIREBASE_SERVER_AUTH_CLAIMS_SETUP_PASSWORD_KEY, FIRESTORE_CLIENT_QUERY_CONSTRAINT_HANDLER_MAPPING, FIRESTORE_COLLECTION_NAME_SEPARATOR, FIRESTORE_DUMMY_MODEL_KEY, FIRESTORE_EMPTY_VALUE, FIRESTORE_END_AT_QUERY_CONSTRAINT_TYPE, FIRESTORE_END_AT_VALUE_QUERY_CONSTRAINT_TYPE, FIRESTORE_END_BEFORE_QUERY_CONSTRAINT_TYPE, FIRESTORE_ITEM_PAGE_ITERATOR, FIRESTORE_ITEM_PAGE_ITERATOR_DELEGATE, FIRESTORE_LIMIT_QUERY_CONSTRAINT_TYPE, FIRESTORE_LIMIT_TO_LAST_QUERY_CONSTRAINT_TYPE, FIRESTORE_MAX_WHERE_IN_FILTER_ARGS_COUNT, FIRESTORE_MODEL_ID_REGEX, FIRESTORE_MODEL_KEY_REGEX, FIRESTORE_MODEL_KEY_REGEX_STRICT, FIRESTORE_OFFSET_QUERY_CONSTRAINT_TYPE, FIRESTORE_ORDER_BY_DOCUMENT_ID_QUERY_CONSTRAINT_TYPE, FIRESTORE_ORDER_BY_QUERY_CONSTRAINT_TYPE, FIRESTORE_PASSTHROUGH_FIELD, FIRESTORE_PERMISSION_DENIED_ERROR_CODE, FIRESTORE_START_AFTER_QUERY_CONSTRAINT_TYPE, FIRESTORE_START_AT_QUERY_CONSTRAINT_TYPE, FIRESTORE_START_AT_VALUE_QUERY_CONSTRAINT_TYPE, FIRESTORE_WHERE_DOCUMENT_ID_QUERY_CONSTRAINT_TYPE, FIRESTORE_WHERE_QUERY_CONSTRAINT_TYPE, FirebaseDevelopmentFunctions, FirebaseModelPermissionServiceInstance, FirebaseServerError, FirestoreAccessorStreamMode, FirestoreDocumentContextType, HIGH_UPLOADED_FILE_TYPE_DETERMINATION_LEVEL, InferredTargetModelIdParams, InferredTargetModelParams, InitializeAllApplicableNotificationBoxesParams, InitializeAllApplicableNotificationSummariesParams, InitializeAllApplicableStorageFileGroupsParams, InitializeAllStorageFilesFromUploadsParams, InitializeNotificationModelParams, InitializeStorageFileFromUploadParams, InitializeStorageFileModelParams, IsFirestoreModelId, IsFirestoreModelIdOrKey, IsFirestoreModelKey, LOW_UPLOADED_FILE_TYPE_DETERMINATION_LEVEL, MAX_FIRESTORE_MAP_ZOOM_LEVEL_VALUE, MIN_FIRESTORE_MAP_ZOOM_LEVEL_VALUE, MODEL_FUNCTION_FIREBASE_CRUD_FUNCTION_SPECIFIER_DEFAULT, MODEL_FUNCTION_FIREBASE_CRUD_FUNCTION_SPECIFIER_SPLITTER, MODEL_STORAGE_FILE_SLASH_PATH_FACTORY, ModifyBeforeSetFirestoreDocumentDataAccessorWrapper, NOTIFICATION_BOX_DOES_NOT_EXIST_ERROR_CODE, NOTIFICATION_BOX_EXCLUSION_TARGET_INVALID_ERROR_CODE, NOTIFICATION_BOX_EXISTS_FOR_MODEL_ERROR_CODE, NOTIFICATION_BOX_RECIPIENT_DOES_NOT_EXIST_ERROR_CODE, NOTIFICATION_MESSAGE_MAX_LENGTH, NOTIFICATION_MESSAGE_MIN_LENGTH, NOTIFICATION_MODEL_ALREADY_INITIALIZED_ERROR_CODE, NOTIFICATION_RECIPIENT_NAME_MAX_LENGTH, NOTIFICATION_RECIPIENT_NAME_MIN_LENGTH, NOTIFICATION_SUBJECT_MAX_LENGTH, NOTIFICATION_SUBJECT_MIN_LENGTH, NOTIFICATION_SUMMARY_EMBEDDED_NOTIFICATION_ITEM_MESSAGE_MAX_LENGTH, NOTIFICATION_SUMMARY_EMBEDDED_NOTIFICATION_ITEM_SUBJECT_MAX_LENGTH, NOTIFICATION_SUMMARY_ITEM_LIMIT, NOTIFICATION_TASK_SUBTASK_CHECKPOINT_CLEANUP, NOTIFICATION_TASK_SUBTASK_CHECKPOINT_PROCESSING, NOTIFICATION_USER_BLOCKED_FROM_BEING_ADD_TO_RECIPIENTS_ERROR_CODE, NOTIFICATION_USER_INVALID_UID_FOR_CREATE_ERROR_CODE, NOTIFICATION_USER_LOCKED_CONFIG_FROM_BEING_UPDATED_ERROR_CODE, NOTIFICATION_WEEK_NOTIFICATION_ITEM_LIMIT, NotificationBoxDocument, NotificationBoxRecipientFlag, NotificationBoxRecipientTemplateConfigArrayEntryParam, NotificationBoxRecipientTemplateConfigBoolean, NotificationDocument, NotificationFirestoreCollections, NotificationFunctions, NotificationMessageFlag, NotificationRecipientParams, NotificationRecipientSendFlag, NotificationSendState, NotificationSendType, NotificationSummaryDocument, NotificationUserDocument, NotificationWeekDocument, ProcessAllQueuedStorageFilesParams, ProcessStorageFileParams, RUN_DEV_FUNCTION_APP_FUNCTION_KEY, RegenerateAllFlaggedStorageFileGroupsContentParams, RegenerateStorageFileGroupContentParams, ResyncAllNotificationUserParams, ResyncNotificationUserParams, SCHEDULED_FUNCTION_DEV_FUNCTION_SPECIFIER, STORAGEFILE_RELATED_FILE_METADATA_KEY, STORAGE_FILE_ALREADY_PROCESSED_ERROR_CODE, STORAGE_FILE_CANNOT_BE_DELETED_YET_ERROR_CODE, STORAGE_FILE_GROUP_CREATE_INPUT_ERROR_CODE, STORAGE_FILE_GROUP_QUEUED_FOR_INITIALIZATION_ERROR_CODE, STORAGE_FILE_GROUP_ROOT_FOLDER_PATH, STORAGE_FILE_GROUP_ZIP_FILE_PATH, STORAGE_FILE_GROUP_ZIP_INFO_JSON_FILE_NAME, STORAGE_FILE_GROUP_ZIP_STORAGE_FILE_PURPOSE, STORAGE_FILE_GROUP_ZIP_STORAGE_FILE_PURPOSE_CREATE_ZIP_SUBTASK, STORAGE_FILE_MODEL_ALREADY_INITIALIZED_ERROR_CODE, STORAGE_FILE_NOT_FLAGGED_FOR_DELETION_ERROR_CODE, STORAGE_FILE_NOT_FLAGGED_FOR_GROUPS_SYNC_ERROR_CODE, STORAGE_FILE_PROCESSING_NOTIFICATION_TASK_TYPE, STORAGE_FILE_PROCESSING_NOT_ALLOWED_FOR_INVALID_STATE_ERROR_CODE, STORAGE_FILE_PROCESSING_NOT_AVAILABLE_FOR_TYPE_ERROR_CODE, STORAGE_FILE_PROCESSING_NOT_QUEUED_FOR_PROCESSING_ERROR_CODE, STORAGE_FILE_PROCESSING_STUCK_THROTTLE_CHECK_MS, STORAGE_FILE_UPLOAD_USER_ROLE, ScheduledFunctionDevelopmentFirebaseFunctionListEntry, ScheduledFunctionDevelopmentFirebaseFunctionParams, ScheduledFunctionDevelopmentFunctionTypeEnum, SendNotificationParams, SendQueuedNotificationsParams, StorageFileCreationType, StorageFileDocument, StorageFileFirestoreCollections, StorageFileFunctions, StorageFileGroupDocument, StorageFileProcessingState, StorageFileState, StorageFileUploadStreamUnsupportedError, SyncAllFlaggedStorageFilesWithGroupsParams, SyncStorageFileWithGroupsParams, SystemStateDocument, SystemStateFirestoreCollections, TargetModelIdParams, TargetModelParams, UPLOADED_FILE_DOES_NOT_EXIST_ERROR_CODE, UPLOADED_FILE_INITIALIZATION_DISCARDED_ERROR_CODE, UPLOADED_FILE_INITIALIZATION_FAILED_ERROR_CODE, UPLOADED_FILE_NOT_ALLOWED_TO_BE_INITIALIZED_ERROR_CODE, UPLOADS_FOLDER_PATH, UpdateNotificationBoxParams, UpdateNotificationBoxRecipientLikeParams, UpdateNotificationBoxRecipientParams, UpdateNotificationSummaryParams, UpdateNotificationUserDefaultNotificationBoxRecipientConfigParams, UpdateNotificationUserNotificationBoxRecipientParams, UpdateNotificationUserParams, UpdateStorageFileGroupEntryParams, UpdateStorageFileGroupParams, UpdateStorageFileParams, _createNotificationDocumentFromPair, addConstraintToBuilder, addOrReplaceLimitInConstraints, allChildDocumentsUnderParent, allChildDocumentsUnderParentPath, allChildDocumentsUnderRelativePath, allowDocumentSnapshotWithPathOnceFilter, allowedNotificationRecipients, appNotificationTemplateTypeInfoRecordService, applyExclusionsToNotificationUserNotificationBoxRecipientConfigs, arrayUpdateWithAccessorFunction, asTopLevelFieldPath, asTopLevelFieldPaths, assertFirestoreUpdateHasData, assertStorageUploadOptionsStringFormat, assignDateCellRangeFunction, assignDateCellScheduleFunction, assignUnitedStatesAddressFunction, assignWebsiteFileLinkFunction, assignWebsiteLinkFunction, buildFirebaseCollectionTypeModelTypeMap, calculateNsForNotificationUserNotificationBoxRecipientConfigs, calculateStorageFileGroupEmbeddedFileUpdate, calculateStorageFileGroupRegeneration, callModelFirebaseFunctionMapFactory, canQueueStorageFileForProcessing, childFirestoreModelKey, childFirestoreModelKeyPath, childFirestoreModelKeys, clientFirebaseFirestoreContextFactory, clientFirebaseStorageContextFactory, combineUploadFileTypeDeterminers, completeSubtaskProcessingAndScheduleCleanupTaskResult, contextGrantedModelRolesReader, contextGrantedModelRolesReaderDoesNotExistErrorMessage, contextGrantedModelRolesReaderPermissionErrorMessage, convertHttpsCallableErrorToReadableError, copyDocumentIdForUserRelatedModifierFunction, copyDocumentIdToFieldModifierFunction, copyStoragePath, copyUserRelatedDataAccessorFactoryFunction, copyUserRelatedDataModifierConfig, createNotificationDocument, createNotificationDocumentIfSending, createNotificationDocumentPair, createNotificationTaskTemplate, createNotificationTemplate, createStorageFileDocumentPair, createStorageFileDocumentPairFactory, dataFromDocumentSnapshots, dataFromSnapshotStream, delayCompletion, determineByFileName, determineByFilePath, determineByFolderName, determineUserByFolder, determineUserByFolderWrapperFunction, determineUserByUserUploadsFolderWrapperFunction, developmentFirebaseFunctionMapFactory, directDataHttpsCallable, documentData, documentDataFunction, documentDataWithIdAndKey, documentReferenceFromDocument, documentReferencesFromDocuments, documentReferencesFromSnapshot, effectiveNotificationBoxRecipientConfig, effectiveNotificationBoxRecipientTemplateConfig, endAt, endAtValue, endBefore, extendFirestoreCollectionWithSingleDocumentAccessor, filterConstraintsOfType, filterDisallowedFirestoreItemPageIteratorInputConstraints, filterRepeatCheckpointSnapshots, filterWithDateRange, firebaseAuthErrorToReadableError, firebaseFirestoreClientDrivers, firebaseFirestoreQueryConstraintFunctionsDriver, firebaseFirestoreQueryDriver, firebaseFunctionMapFactory, firebaseModelLoader, firebaseModelPermissionService, firebaseModelService, firebaseModelServiceFactory, firebaseModelsService, firebaseQueryItemAccumulator, firebaseQuerySnapshotAccumulator, firebaseStorageBucketFolderPath, firebaseStorageClientAccessorDriver, firebaseStorageClientAccessorFile, firebaseStorageClientAccessorFolder, firebaseStorageClientDrivers, firebaseStorageClientListFilesResultFactory, firebaseStorageContextFactory, firebaseStorageFileExists, firebaseStorageFilePathFromStorageFilePath, firebaseStorageRefForStorageFilePath, firestoreArray, firestoreArrayMap, firestoreBitwiseObjectMap, firestoreBitwiseSet, firestoreBitwiseSetMap, firestoreBoolean, firestoreClientAccessorDriver, firestoreClientArrayUpdateToUpdateData, firestoreClientIncrementUpdateToUpdateData, firestoreCollectionQueryFactory, firestoreContextFactory, firestoreDate, firestoreDateCellRange, firestoreDateCellRangeArray, firestoreDateCellRangeAssignFn, firestoreDateCellSchedule, firestoreDateCellScheduleAssignFn, firestoreDateNumber, firestoreDencoderArray, firestoreDencoderMap, firestoreDencoderStringArray, firestoreDocumentAccessorContextExtension, firestoreDocumentAccessorFactory, firestoreDocumentLoader, firestoreDocumentSnapshotPairsLoader, firestoreDocumentSnapshotPairsLoaderInstance, firestoreDummyKey, firestoreEncodedArray, firestoreEncodedObjectMap, firestoreEnum, firestoreEnumArray, firestoreField, firestoreFieldConfigToModelMapFunctionsRef, firestoreFixedItemPageIteration, firestoreFixedItemPageIterationFactory, firestoreIdBatchVerifierFactory, firestoreIdentityTypeArray, firestoreIdentityTypeArrayName, firestoreItemPageIteration, firestoreItemPageIterationFactory, firestoreLatLngString, firestoreMap, firestoreMapZoomLevel, firestoreModelId, firestoreModelIdArrayField, firestoreModelIdFromDocument, firestoreModelIdFromEmail, firestoreModelIdGrantedRoleArrayMap, firestoreModelIdGrantedRoleMap, firestoreModelIdString, firestoreModelIdentity, firestoreModelIdentityTypeMap, firestoreModelIdsFromDocuments, firestoreModelIdsFromKey, firestoreModelKey, firestoreModelKeyArrayField, firestoreModelKeyCollectionName, firestoreModelKeyCollectionType, firestoreModelKeyCollectionTypeArray, firestoreModelKeyCollectionTypeArrayName, firestoreModelKeyCollectionTypePair, firestoreModelKeyEncodedGrantedRoleMap, firestoreModelKeyFactory, firestoreModelKeyFromDocument, firestoreModelKeyGrantedRoleArrayMap, firestoreModelKeyGrantedRoleMap, firestoreModelKeyPairObject, firestoreModelKeyParentKey, firestoreModelKeyParentKeyPartPairs, firestoreModelKeyPart, firestoreModelKeyPartPairs, firestoreModelKeyPartPairsKeyPath, firestoreModelKeyPartPairsPaths, firestoreModelKeyPath, firestoreModelKeyString, firestoreModelKeyTypePair, firestoreModelKeys, firestoreModelKeysFromDocuments, firestoreModelType, firestoreNotificationBoxRecipient, firestoreNotificationBoxRecipientTemplateConfigRecord, firestoreNotificationItem, firestoreNotificationRecipientWithConfig, firestoreNotificationUserDefaultNotificationBoxRecipientConfig, firestoreNotificationUserNotificationBoxRecipientConfig, firestoreNumber, firestoreObjectArray, firestorePassThroughField, firestoreQueryConstraint, firestoreQueryConstraintFactory, firestoreQueryDocumentSnapshotPairsLoader, firestoreQueryFactory, firestoreSingleDocumentAccessor, firestoreString, firestoreSubObject, firestoreTimezoneString, firestoreUID, firestoreUniqueArray, firestoreUniqueKeyedArray, firestoreUniqueNumberArray, firestoreUniqueStringArray, firestoreUnitedStatesAddress, firestoreUnitedStatesAddressAssignFn, firestoreUnixDateTimeSecondsNumber, firestoreUpdateWithNoDataError, firestoreWebsiteFileLink, firestoreWebsiteFileLinkAssignFn, firestoreWebsiteFileLinkEncodedArray, firestoreWebsiteFileLinkObjectArray, firestoreWebsiteLink, firestoreWebsiteLinkArray, firestoreWebsiteLinkAssignFn, flatFirestoreModelKey, getDataFromDocumentSnapshots, getDocumentSnapshotData, getDocumentSnapshotDataPair, getDocumentSnapshotDataPairs, getDocumentSnapshotDataPairsWithData, getDocumentSnapshotDataTuples, getDocumentSnapshotPair, getDocumentSnapshotPairs, getDocumentSnapshots, getDocumentSnapshotsData, grantFullAccessIfAdmin, grantFullAccessIfAuthUserRelated, grantModelRolesIfAdmin, grantModelRolesIfAdminFunction, grantModelRolesIfAuthUserRelatedModelFunction, grantModelRolesIfFunction, grantModelRolesIfHasAuthRolesFactory, grantModelRolesIfHasAuthRolesFunction, grantModelRolesOnlyIfFunction, grantStorageFileRolesForUserAuthFunction, inContextFirebaseModelServiceFactory, inContextFirebaseModelsServiceFactory, incrementUpdateWithAccessorFunction, inferKeyFromTwoWayFlatFirestoreModelKey, inferNotificationBoxRelatedModelKey, inferStorageFileGroupRelatedModelKey, interceptAccessorFactoryFunction, isAdminInFirebaseModelContext, isClientFirebaseError, isCompleteNotificationSendState, isFirebaseStorageObjectNotFoundError, isFirestoreModelId, isFirestoreModelIdOrKey, isFirestoreModelKey, isOwnerOfUserRelatedModelInFirebaseModelContext, iterateFirestoreDocumentSnapshotBatches, iterateFirestoreDocumentSnapshotCheckpoints, iterateFirestoreDocumentSnapshotPairBatches, iterateFirestoreDocumentSnapshotPairs, iterateFirestoreDocumentSnapshots, iterateStorageListFiles, iterateStorageListFilesByEachFile, iterateStorageListFilesFactory, iterationQueryDocChangeWatcher, iterationQueryDocChangeWatcherChangeTypeForGroup, latestDataFromDocuments, latestSnapshotsFromDocuments, lazyFirebaseFunctionsFactory, limit, limitToLast, limitUploadFileTypeDeterminer, limitedFirestoreDocumentAccessorFactory, loadAllFirestoreDocumentSnapshot, loadAllFirestoreDocumentSnapshotPairs, loadDocumentsForDocumentReferences, loadDocumentsForDocumentReferencesFromValues, loadDocumentsForIds, loadDocumentsForIdsFromValues, loadDocumentsForKeys, loadDocumentsForKeysFromValues, loadDocumentsForSnapshots, loadDocumentsForValues, loadNotificationBoxDocumentForReferencePair, loadStorageFileGroupDocumentForReferencePair, makeDocuments, makeFirestoreCollection, makeFirestoreCollectionGroup, makeFirestoreCollectionWithParent, makeFirestoreItemPageIteratorDelegate, makeFirestoreQueryConstraintFunctionsDriver, makeRootSingleItemFirestoreCollection, makeSingleItemFirestoreCollection, mapDataFromSnapshot, mapHttpsCallable, mergeNotificationBoxRecipientTemplateConfigRecords, mergeNotificationBoxRecipientTemplateConfigs, mergeNotificationBoxRecipients, mergeNotificationSendMessagesResult, mergeNotificationUserDefaultNotificationBoxRecipientConfig, mergeNotificationUserNotificationBoxRecipientConfigs, modelStorageSlashPathFactory, modifyBeforeSetInterceptAccessorFactoryFunction, newDocuments, newNotificationBoxRecipientForUid, noContentNotificationMessageFunctionFactory, noStringFormatInStorageUploadOptionsError, notificationBoxCollectionReference, notificationBoxConverter, notificationBoxFirestoreCollection, notificationBoxIdForModel, notificationBoxIdentity, notificationBoxModelCrudFunctionsConfig, notificationBoxRecipientTemplateConfigArrayToRecord, notificationBoxRecipientTemplateConfigRecordToArray, notificationBoxesFlaggedForNeedsInitializationQuery, notificationBoxesFlaggedInvalidQuery, notificationCollectionReference, notificationCollectionReferenceFactory, notificationConverter, notificationFirestoreCollectionFactory, notificationFirestoreCollectionGroup, notificationFunctionMap, notificationFunctionTypeConfigMap, notificationIdentity, notificationMessageFunction, notificationSendExclusionCanSendFunction, notificationSendFlagsImplyIsComplete, notificationSubtaskComplete, notificationSummariesFlaggedForNeedsInitializationQuery, notificationSummaryCollectionReference, notificationSummaryConverter, notificationSummaryFirestoreCollection, notificationSummaryIdForModel, notificationSummaryIdForUidFunctionForRootFirestoreModelIdentity, notificationSummaryIdentity, notificationTaskCanRunNextCheckpoint, notificationTaskComplete, notificationTaskDelayRetry, notificationTaskFailed, notificationTaskPartiallyComplete, notificationTaskUniqueId, notificationTemplateTypeInfoRecord, notificationUserCollectionReference, notificationUserConverter, notificationUserFirestoreCollection, notificationUserHasExclusionQuery, notificationUserIdentity, notificationUsersFlaggedForNeedsSyncQuery, notificationWeekCollectionReference, notificationWeekCollectionReferenceFactory, notificationWeekConverter, notificationWeekFirestoreCollectionFactory, notificationWeekFirestoreCollectionGroup, notificationWeekIdentity, notificationsPastSendAtTimeQuery, notificationsReadyForCleanupQuery, offset, onCallCreateModelParams, onCallCreateModelResult, onCallCreateModelResultWithDocs, onCallDeleteModelParams, onCallDevelopmentParams, onCallReadModelParams, onCallTypedModelParams, onCallTypedModelParamsFunction, onCallUpdateModelParams, optionalFirestoreArray, optionalFirestoreBoolean, optionalFirestoreDate, optionalFirestoreDateNumber, optionalFirestoreEnum, optionalFirestoreField, optionalFirestoreNumber, optionalFirestoreString, optionalFirestoreUID, optionalFirestoreUnitedStatesAddress, optionalFirestoreUnixDateTimeSecondsNumber, orderBy, orderByDocumentId, readFirestoreModelKey, readFirestoreModelKeyFromDocumentSnapshot, replaceConstraints, selectFromFirebaseModelsService, separateConstraints, setIdAndKeyFromKeyIdRefOnDocumentData, setIdAndKeyFromSnapshotOnDocumentData, shouldSaveNotificationToNotificationWeek, shouldSendCreatedNotificationInput, snapshotConverterFunctions, snapshotStreamDataForAccessor, snapshotStreamForAccessor, sortNotificationItemsFunction, startAfter, startAt, startAtValue, storageFileCollectionReference, storageFileConverter, storageFileFirestoreCollection, storageFileFlaggedForSyncWithGroupsQuery, storageFileFunctionMap, storageFileFunctionTypeConfigMap, storageFileGroupCollectionReference, storageFileGroupConverter, storageFileGroupCreateStorageFileKeyFactory, storageFileGroupCreatedStorageFileKey, storageFileGroupEmbeddedFile, storageFileGroupFirestoreCollection, storageFileGroupFolderPath, storageFileGroupIdForModel, storageFileGroupIdentity, storageFileGroupZipFileStoragePath, storageFileGroupZipStorageFileKey, storageFileGroupsFlaggedForContentRegenerationQuery, storageFileGroupsFlaggedForNeedsInitializationQuery, storageFileGroupsFlaggedInvalidQuery, storageFileIdentity, storageFileModelCrudFunctionsConfig, storageFileProcessingNotificationTaskTemplate, storageFilePurposeAndUserQuery, storageFileUploadUserSimpleClaimsConfiguration, storageFilesQueuedForDeleteQuery, storageFilesQueuedForProcessingQuery, storageListFilesResultFactory, storageListFilesResultHasNoNextError, storagePathFactory, storedFileReaderFactory, streamFromOnSnapshot, systemStateCollectionReference, systemStateConverter, systemStateFirestoreCollection, systemStateIdentity, twoWayFlatFirestoreModelKey, unreadNotificationItems, unsupportedFirestoreDriverFunctionError, updateNotificationBoxRecipientTemplateConfigRecord, updateNotificationRecipient, updateNotificationUserDefaultNotificationBoxRecipientConfig, updateNotificationUserNotificationBoxRecipientConfigIfChanged, updateNotificationUserNotificationBoxRecipientConfigs, updateNotificationUserNotificationSendExclusions, updateWithAccessorUpdateAndConverterFunction, uploadFileWithStream, useContextAuth, useContextAuthUid, useDocumentSnapshot, useDocumentSnapshotData, useFirebaseModelsService, userUploadsFolderSlashPathFactory, userUploadsFolderStoragePathFactory, where, whereDateIsAfter, whereDateIsAfterWithSort, whereDateIsBefore, whereDateIsBeforeWithSort, whereDateIsBetween, whereDateIsInRange, whereDateIsOnOrAfter, whereDateIsOnOrAfterWithSort, whereDateIsOnOrBefore, whereDateIsOnOrBeforeWithSort, whereDocumentId, whereStringHasRootIdentityModelKey, whereStringValueHasPrefix };
|
|
9676
|
+
export { ALL_STORAGE_FILE_NOTIFICATION_TASK_TYPES, ALL_USER_UPLOADS_FOLDER_NAME, ALL_USER_UPLOADS_FOLDER_PATH, AbstractFirestoreDocument, AbstractFirestoreDocumentDataAccessorWrapper, AbstractFirestoreDocumentWithParent, AbstractSubscribeOrUnsubscribeToNotificationBoxParams, AbstractSubscribeToNotificationBoxParams, AppNotificationTemplateTypeInfoRecordService, BASE_MODEL_STORAGE_FILE_PATH, CALL_MODEL_APP_FUNCTION_KEY, COPY_USER_RELATED_DATA_ACCESSOR_FACTORY_FUNCTION, CREATE_NOTIFICATION_ID_REQUIRED_ERROR_CODE, CleanupSentNotificationsParams, ContextGrantedModelRolesReaderInstance, CreateNotificationBoxParams, CreateNotificationSummaryParams, CreateNotificationUserParams, CreateStorageFileGroupParams, CreateStorageFileParams, DBX_FIREBASE_SERVER_NO_AUTH_ERROR_CODE, DBX_FIREBASE_SERVER_NO_UID_ERROR_CODE, DEFAULT_DATE_CELL_RANGE_VALUE, DEFAULT_FIRESTORE_DATE_CELL_SCHEDULE_VALUE, DEFAULT_FIRESTORE_ITEM_PAGE_ITERATOR_ITEMS_PER_PAGE, DEFAULT_FIRESTORE_STRING_FIELD_VALUE, DEFAULT_FIRESTORE_UNITED_STATES_ADDRESS_VALUE, DEFAULT_FIRESTORE_WEBSITE_FILE_LINK_VALUE, DEFAULT_ITERATE_FIRESTORE_DOCUMENT_SNAPSHOT_BATCHES_BATCH_SIZE, DEFAULT_NOTIFICATION_TASK_NOTIFICATION_MODEL_KEY, DEFAULT_NOTIFICATION_TASK_SUBTASK_CLEANUP_RETRY_ATTEMPTS, DEFAULT_NOTIFICATION_TASK_SUBTASK_CLEANUP_RETRY_DELAY, DEFAULT_NOTIFICATION_TEMPLATE_TYPE, DEFAULT_QUERY_CHANGE_WATCHER_DELAY, DEFAULT_SINGLE_ITEM_FIRESTORE_COLLECTION_DOCUMENT_IDENTIFIER, DEFAULT_UPLOADED_FILE_TYPE_DETERMINATION_LEVEL, DEFAULT_WEBSITE_LINK, DeleteAllQueuedStorageFilesParams, DeleteStorageFileParams, DownloadStorageFileParams, EMPTY_STORAGE_FILE_PURPOSE_SUBGROUP, EXACT_UPLOADED_FILE_TYPE_DETERMINATION_LEVEL, FIREBASE_AUTH_NETWORK_REQUEST_ERROR, FIREBASE_AUTH_NETWORK_REQUEST_FAILED, FIREBASE_AUTH_PASSWORD_MAX_LENGTH, FIREBASE_AUTH_PASSWORD_MIN_LENGTH, FIREBASE_AUTH_USER_NOT_FOUND_ERROR, FIREBASE_AUTH_WRONG_PASSWORD, FIREBASE_DEVELOPMENT_FUNCTIONS_MAP_KEY, FIREBASE_SERVER_AUTH_CLAIMS_RESET_LAST_COM_DATE_KEY, FIREBASE_SERVER_AUTH_CLAIMS_RESET_PASSWORD_KEY, FIREBASE_SERVER_AUTH_CLAIMS_SETUP_LAST_COM_DATE_KEY, FIREBASE_SERVER_AUTH_CLAIMS_SETUP_PASSWORD_KEY, FIRESTORE_CLIENT_QUERY_CONSTRAINT_HANDLER_MAPPING, FIRESTORE_COLLECTION_NAME_SEPARATOR, FIRESTORE_DUMMY_MODEL_KEY, FIRESTORE_EMPTY_VALUE, FIRESTORE_END_AT_QUERY_CONSTRAINT_TYPE, FIRESTORE_END_AT_VALUE_QUERY_CONSTRAINT_TYPE, FIRESTORE_END_BEFORE_QUERY_CONSTRAINT_TYPE, FIRESTORE_ITEM_PAGE_ITERATOR, FIRESTORE_ITEM_PAGE_ITERATOR_DELEGATE, FIRESTORE_LIMIT_QUERY_CONSTRAINT_TYPE, FIRESTORE_LIMIT_TO_LAST_QUERY_CONSTRAINT_TYPE, FIRESTORE_MAX_WHERE_IN_FILTER_ARGS_COUNT, FIRESTORE_MODEL_ID_REGEX, FIRESTORE_MODEL_KEY_REGEX, FIRESTORE_MODEL_KEY_REGEX_STRICT, FIRESTORE_OFFSET_QUERY_CONSTRAINT_TYPE, FIRESTORE_ORDER_BY_DOCUMENT_ID_QUERY_CONSTRAINT_TYPE, FIRESTORE_ORDER_BY_QUERY_CONSTRAINT_TYPE, FIRESTORE_PASSTHROUGH_FIELD, FIRESTORE_PERMISSION_DENIED_ERROR_CODE, FIRESTORE_START_AFTER_QUERY_CONSTRAINT_TYPE, FIRESTORE_START_AT_QUERY_CONSTRAINT_TYPE, FIRESTORE_START_AT_VALUE_QUERY_CONSTRAINT_TYPE, FIRESTORE_WHERE_DOCUMENT_ID_QUERY_CONSTRAINT_TYPE, FIRESTORE_WHERE_QUERY_CONSTRAINT_TYPE, FirebaseDevelopmentFunctions, FirebaseModelPermissionServiceInstance, FirebaseServerError, FirestoreAccessorStreamMode, FirestoreDocumentContextType, HIGH_UPLOADED_FILE_TYPE_DETERMINATION_LEVEL, InferredTargetModelIdParams, InferredTargetModelParams, InitializeAllApplicableNotificationBoxesParams, InitializeAllApplicableNotificationSummariesParams, InitializeAllApplicableStorageFileGroupsParams, InitializeAllStorageFilesFromUploadsParams, InitializeNotificationModelParams, InitializeStorageFileFromUploadParams, InitializeStorageFileModelParams, IsFirestoreModelId, IsFirestoreModelIdOrKey, IsFirestoreModelKey, LOW_UPLOADED_FILE_TYPE_DETERMINATION_LEVEL, MAX_FIRESTORE_MAP_ZOOM_LEVEL_VALUE, MIN_FIRESTORE_MAP_ZOOM_LEVEL_VALUE, MODEL_FUNCTION_FIREBASE_CRUD_FUNCTION_SPECIFIER_DEFAULT, MODEL_FUNCTION_FIREBASE_CRUD_FUNCTION_SPECIFIER_SPLITTER, MODEL_STORAGE_FILE_SLASH_PATH_FACTORY, ModifyBeforeSetFirestoreDocumentDataAccessorWrapper, NOTIFICATION_BOX_DOES_NOT_EXIST_ERROR_CODE, NOTIFICATION_BOX_EXCLUSION_TARGET_INVALID_ERROR_CODE, NOTIFICATION_BOX_EXISTS_FOR_MODEL_ERROR_CODE, NOTIFICATION_BOX_RECIPIENT_DOES_NOT_EXIST_ERROR_CODE, NOTIFICATION_MESSAGE_MAX_LENGTH, NOTIFICATION_MESSAGE_MIN_LENGTH, NOTIFICATION_MODEL_ALREADY_INITIALIZED_ERROR_CODE, NOTIFICATION_RECIPIENT_NAME_MAX_LENGTH, NOTIFICATION_RECIPIENT_NAME_MIN_LENGTH, NOTIFICATION_SUBJECT_MAX_LENGTH, NOTIFICATION_SUBJECT_MIN_LENGTH, NOTIFICATION_SUMMARY_EMBEDDED_NOTIFICATION_ITEM_MESSAGE_MAX_LENGTH, NOTIFICATION_SUMMARY_EMBEDDED_NOTIFICATION_ITEM_SUBJECT_MAX_LENGTH, NOTIFICATION_SUMMARY_ITEM_LIMIT, NOTIFICATION_TASK_SUBTASK_CHECKPOINT_CLEANUP, NOTIFICATION_TASK_SUBTASK_CHECKPOINT_PROCESSING, NOTIFICATION_USER_BLOCKED_FROM_BEING_ADD_TO_RECIPIENTS_ERROR_CODE, NOTIFICATION_USER_INVALID_UID_FOR_CREATE_ERROR_CODE, NOTIFICATION_USER_LOCKED_CONFIG_FROM_BEING_UPDATED_ERROR_CODE, NOTIFICATION_WEEK_NOTIFICATION_ITEM_LIMIT, NotificationBoxDocument, NotificationBoxRecipientFlag, NotificationBoxRecipientTemplateConfigArrayEntryParam, NotificationBoxRecipientTemplateConfigBoolean, NotificationDocument, NotificationFirestoreCollections, NotificationFunctions, NotificationMessageFlag, NotificationRecipientParams, NotificationRecipientSendFlag, NotificationSendState, NotificationSendType, NotificationSummaryDocument, NotificationUserDocument, NotificationWeekDocument, ProcessAllQueuedStorageFilesParams, ProcessStorageFileParams, RUN_DEV_FUNCTION_APP_FUNCTION_KEY, RegenerateAllFlaggedStorageFileGroupsContentParams, RegenerateStorageFileGroupContentParams, ResyncAllNotificationUserParams, ResyncNotificationUserParams, SCHEDULED_FUNCTION_DEV_FUNCTION_SPECIFIER, STORAGEFILE_RELATED_FILE_METADATA_KEY, STORAGE_FILE_ALREADY_PROCESSED_ERROR_CODE, STORAGE_FILE_CANNOT_BE_DELETED_YET_ERROR_CODE, STORAGE_FILE_GROUP_CREATE_INPUT_ERROR_CODE, STORAGE_FILE_GROUP_QUEUED_FOR_INITIALIZATION_ERROR_CODE, STORAGE_FILE_GROUP_ROOT_FOLDER_PATH, STORAGE_FILE_GROUP_ZIP_FILE_PATH, STORAGE_FILE_GROUP_ZIP_INFO_JSON_FILE_NAME, STORAGE_FILE_GROUP_ZIP_STORAGE_FILE_PURPOSE, STORAGE_FILE_GROUP_ZIP_STORAGE_FILE_PURPOSE_CREATE_ZIP_SUBTASK, STORAGE_FILE_MODEL_ALREADY_INITIALIZED_ERROR_CODE, STORAGE_FILE_NOT_FLAGGED_FOR_DELETION_ERROR_CODE, STORAGE_FILE_NOT_FLAGGED_FOR_GROUPS_SYNC_ERROR_CODE, STORAGE_FILE_PROCESSING_NOTIFICATION_TASK_TYPE, STORAGE_FILE_PROCESSING_NOT_ALLOWED_FOR_INVALID_STATE_ERROR_CODE, STORAGE_FILE_PROCESSING_NOT_AVAILABLE_FOR_TYPE_ERROR_CODE, STORAGE_FILE_PROCESSING_NOT_QUEUED_FOR_PROCESSING_ERROR_CODE, STORAGE_FILE_PROCESSING_STUCK_THROTTLE_CHECK_MS, STORAGE_FILE_UPLOAD_USER_ROLE, ScheduledFunctionDevelopmentFirebaseFunctionListEntry, ScheduledFunctionDevelopmentFirebaseFunctionParams, ScheduledFunctionDevelopmentFunctionTypeEnum, SendNotificationParams, SendQueuedNotificationsParams, StorageFileCreationType, StorageFileDocument, StorageFileFirestoreCollections, StorageFileFunctions, StorageFileGroupDocument, StorageFileProcessingState, StorageFileState, StorageFileUploadStreamUnsupportedError, SyncAllFlaggedStorageFilesWithGroupsParams, SyncStorageFileWithGroupsParams, SystemStateDocument, SystemStateFirestoreCollections, TargetModelIdParams, TargetModelParams, UPLOADED_FILE_DOES_NOT_EXIST_ERROR_CODE, UPLOADED_FILE_INITIALIZATION_DISCARDED_ERROR_CODE, UPLOADED_FILE_INITIALIZATION_FAILED_ERROR_CODE, UPLOADED_FILE_NOT_ALLOWED_TO_BE_INITIALIZED_ERROR_CODE, UPLOADS_FOLDER_PATH, UpdateNotificationBoxParams, UpdateNotificationBoxRecipientLikeParams, UpdateNotificationBoxRecipientParams, UpdateNotificationSummaryParams, UpdateNotificationUserDefaultNotificationBoxRecipientConfigParams, UpdateNotificationUserNotificationBoxRecipientParams, UpdateNotificationUserParams, UpdateStorageFileGroupEntryParams, UpdateStorageFileGroupParams, UpdateStorageFileParams, _createNotificationDocumentFromPair, addConstraintToBuilder, addOrReplaceLimitInConstraints, allChildDocumentsUnderParent, allChildDocumentsUnderParentPath, allChildDocumentsUnderRelativePath, allowDocumentSnapshotWithPathOnceFilter, allowedNotificationRecipients, appNotificationTemplateTypeInfoRecordService, applyExclusionsToNotificationUserNotificationBoxRecipientConfigs, arrayUpdateWithAccessorFunction, asTopLevelFieldPath, asTopLevelFieldPaths, assertFirestoreUpdateHasData, assertStorageUploadOptionsStringFormat, assignDateCellRangeFunction, assignDateCellScheduleFunction, assignUnitedStatesAddressFunction, assignWebsiteFileLinkFunction, assignWebsiteLinkFunction, buildFirebaseCollectionTypeModelTypeMap, calculateNsForNotificationUserNotificationBoxRecipientConfigs, calculateStorageFileGroupEmbeddedFileUpdate, calculateStorageFileGroupRegeneration, callModelFirebaseFunctionMapFactory, canQueueStorageFileForProcessing, childFirestoreModelKey, childFirestoreModelKeyPath, childFirestoreModelKeys, clientFirebaseFirestoreContextFactory, clientFirebaseStorageContextFactory, combineUploadFileTypeDeterminers, completeSubtaskProcessingAndScheduleCleanupTaskResult, contextGrantedModelRolesReader, contextGrantedModelRolesReaderDoesNotExistErrorMessage, contextGrantedModelRolesReaderPermissionErrorMessage, convertHttpsCallableErrorToReadableError, copyDocumentIdForUserRelatedModifierFunction, copyDocumentIdToFieldModifierFunction, copyStoragePath, copyUserRelatedDataAccessorFactoryFunction, copyUserRelatedDataModifierConfig, createNotificationDocument, createNotificationDocumentIfSending, createNotificationDocumentPair, createNotificationTaskTemplate, createNotificationTemplate, createStorageFileDocumentPair, createStorageFileDocumentPairFactory, dataFromDocumentSnapshots, dataFromSnapshotStream, delayCompletion, determineByFileName, determineByFilePath, determineByFolderName, determineUserByFolder, determineUserByFolderWrapperFunction, determineUserByUserUploadsFolderWrapperFunction, developmentFirebaseFunctionMapFactory, directDataHttpsCallable, documentData, documentDataFunction, documentDataWithIdAndKey, documentReferenceFromDocument, documentReferencesFromDocuments, documentReferencesFromSnapshot, effectiveNotificationBoxRecipientConfig, effectiveNotificationBoxRecipientTemplateConfig, endAt, endAtValue, endBefore, extendFirestoreCollectionWithSingleDocumentAccessor, filterConstraintsOfType, filterDisallowedFirestoreItemPageIteratorInputConstraints, filterRepeatCheckpointSnapshots, filterWithDateRange, firebaseAuthErrorToReadableError, firebaseFirestoreClientDrivers, firebaseFirestoreQueryConstraintFunctionsDriver, firebaseFirestoreQueryDriver, firebaseFunctionMapFactory, firebaseModelLoader, firebaseModelPermissionService, firebaseModelService, firebaseModelServiceFactory, firebaseModelsService, firebaseQueryItemAccumulator, firebaseQuerySnapshotAccumulator, firebaseStorageBucketFolderPath, firebaseStorageClientAccessorDriver, firebaseStorageClientAccessorFile, firebaseStorageClientAccessorFolder, firebaseStorageClientDrivers, firebaseStorageClientListFilesResultFactory, firebaseStorageContextFactory, firebaseStorageFileExists, firebaseStorageFilePathFromStorageFilePath, firebaseStorageRefForStorageFilePath, firestoreArray, firestoreArrayMap, firestoreBitwiseObjectMap, firestoreBitwiseSet, firestoreBitwiseSetMap, firestoreBoolean, firestoreClientAccessorDriver, firestoreClientArrayUpdateToUpdateData, firestoreClientIncrementUpdateToUpdateData, firestoreCollectionQueryFactory, firestoreContextFactory, firestoreDate, firestoreDateCellRange, firestoreDateCellRangeArray, firestoreDateCellRangeAssignFn, firestoreDateCellSchedule, firestoreDateCellScheduleAssignFn, firestoreDateNumber, firestoreDencoderArray, firestoreDencoderMap, firestoreDencoderStringArray, firestoreDocumentAccessorContextExtension, firestoreDocumentAccessorFactory, firestoreDocumentLoader, firestoreDocumentSnapshotPairsLoader, firestoreDocumentSnapshotPairsLoaderInstance, firestoreDummyKey, firestoreEncodedArray, firestoreEncodedObjectMap, firestoreEnum, firestoreEnumArray, firestoreField, firestoreFieldConfigToModelMapFunctionsRef, firestoreFixedItemPageIteration, firestoreFixedItemPageIterationFactory, firestoreIdBatchVerifierFactory, firestoreIdentityTypeArray, firestoreIdentityTypeArrayName, firestoreItemPageIteration, firestoreItemPageIterationFactory, firestoreLatLngString, firestoreMap, firestoreMapZoomLevel, firestoreModelId, firestoreModelIdArrayField, firestoreModelIdFromDocument, firestoreModelIdFromEmail, firestoreModelIdGrantedRoleArrayMap, firestoreModelIdGrantedRoleMap, firestoreModelIdString, firestoreModelIdentity, firestoreModelIdentityTypeMap, firestoreModelIdsFromDocuments, firestoreModelIdsFromKey, firestoreModelKey, firestoreModelKeyArrayField, firestoreModelKeyCollectionName, firestoreModelKeyCollectionType, firestoreModelKeyCollectionTypeArray, firestoreModelKeyCollectionTypeArrayName, firestoreModelKeyCollectionTypePair, firestoreModelKeyEncodedGrantedRoleMap, firestoreModelKeyFactory, firestoreModelKeyFromDocument, firestoreModelKeyGrantedRoleArrayMap, firestoreModelKeyGrantedRoleMap, firestoreModelKeyPairObject, firestoreModelKeyParentKey, firestoreModelKeyParentKeyPartPairs, firestoreModelKeyPart, firestoreModelKeyPartPairs, firestoreModelKeyPartPairsKeyPath, firestoreModelKeyPartPairsPaths, firestoreModelKeyPath, firestoreModelKeyString, firestoreModelKeyTypePair, firestoreModelKeys, firestoreModelKeysFromDocuments, firestoreModelType, firestoreNotificationBoxRecipient, firestoreNotificationBoxRecipientTemplateConfigRecord, firestoreNotificationItem, firestoreNotificationRecipientWithConfig, firestoreNotificationUserDefaultNotificationBoxRecipientConfig, firestoreNotificationUserNotificationBoxRecipientConfig, firestoreNumber, firestoreObjectArray, firestorePassThroughField, firestoreQueryConstraint, firestoreQueryConstraintFactory, firestoreQueryDocumentSnapshotPairsLoader, firestoreQueryFactory, firestoreSingleDocumentAccessor, firestoreString, firestoreSubObject, firestoreTimezoneString, firestoreUID, firestoreUniqueArray, firestoreUniqueKeyedArray, firestoreUniqueNumberArray, firestoreUniqueStringArray, firestoreUnitedStatesAddress, firestoreUnitedStatesAddressAssignFn, firestoreUnixDateTimeSecondsNumber, firestoreUpdateWithNoDataError, firestoreWebsiteFileLink, firestoreWebsiteFileLinkAssignFn, firestoreWebsiteFileLinkEncodedArray, firestoreWebsiteFileLinkObjectArray, firestoreWebsiteLink, firestoreWebsiteLinkArray, firestoreWebsiteLinkAssignFn, flatFirestoreModelKey, getDataFromDocumentSnapshots, getDocumentSnapshotData, getDocumentSnapshotDataPair, getDocumentSnapshotDataPairs, getDocumentSnapshotDataPairsWithData, getDocumentSnapshotDataTuples, getDocumentSnapshotPair, getDocumentSnapshotPairs, getDocumentSnapshots, getDocumentSnapshotsData, grantFullAccessIfAdmin, grantFullAccessIfAuthUserRelated, grantModelRolesIfAdmin, grantModelRolesIfAdminFunction, grantModelRolesIfAuthUserRelatedModelFunction, grantModelRolesIfFunction, grantModelRolesIfHasAuthRolesFactory, grantModelRolesIfHasAuthRolesFunction, grantModelRolesOnlyIfFunction, grantStorageFileRolesForUserAuthFunction, inContextFirebaseModelServiceFactory, inContextFirebaseModelsServiceFactory, incrementUpdateWithAccessorFunction, inferKeyFromTwoWayFlatFirestoreModelKey, inferNotificationBoxRelatedModelKey, inferStorageFileGroupRelatedModelKey, interceptAccessorFactoryFunction, isAdminInFirebaseModelContext, isClientFirebaseError, isCompleteNotificationSendState, isFirebaseStorageObjectNotFoundError, isFirestoreModelId, isFirestoreModelIdOrKey, isFirestoreModelKey, isOwnerOfUserRelatedModelInFirebaseModelContext, iterateFirestoreDocumentSnapshotBatches, iterateFirestoreDocumentSnapshotCheckpoints, iterateFirestoreDocumentSnapshotPairBatches, iterateFirestoreDocumentSnapshotPairs, iterateFirestoreDocumentSnapshots, iterateStorageListFiles, iterateStorageListFilesByEachFile, iterateStorageListFilesFactory, iterationQueryDocChangeWatcher, iterationQueryDocChangeWatcherChangeTypeForGroup, latestDataFromDocuments, latestSnapshotsFromDocuments, lazyFirebaseFunctionsFactory, limit, limitToLast, limitUploadFileTypeDeterminer, limitedFirestoreDocumentAccessorFactory, limitedFirestoreDocumentAccessorSnapshotCache, loadAllFirestoreDocumentSnapshot, loadAllFirestoreDocumentSnapshotPairs, loadDocumentsForDocumentReferences, loadDocumentsForDocumentReferencesFromValues, loadDocumentsForIds, loadDocumentsForIdsFromValues, loadDocumentsForKeys, loadDocumentsForKeysFromValues, loadDocumentsForSnapshots, loadDocumentsForValues, loadNotificationBoxDocumentForReferencePair, loadStorageFileGroupDocumentForReferencePair, makeDocuments, makeFirestoreCollection, makeFirestoreCollectionGroup, makeFirestoreCollectionWithParent, makeFirestoreItemPageIteratorDelegate, makeFirestoreQueryConstraintFunctionsDriver, makeRootSingleItemFirestoreCollection, makeSingleItemFirestoreCollection, mapDataFromSnapshot, mapHttpsCallable, mapLatestSnapshotsFromDocuments, mergeNotificationBoxRecipientTemplateConfigRecords, mergeNotificationBoxRecipientTemplateConfigs, mergeNotificationBoxRecipients, mergeNotificationSendMessagesResult, mergeNotificationUserDefaultNotificationBoxRecipientConfig, mergeNotificationUserNotificationBoxRecipientConfigs, modelStorageSlashPathFactory, modifyBeforeSetInterceptAccessorFactoryFunction, newDocuments, newNotificationBoxRecipientForUid, noContentNotificationMessageFunctionFactory, noStringFormatInStorageUploadOptionsError, notificationBoxCollectionReference, notificationBoxConverter, notificationBoxFirestoreCollection, notificationBoxIdForModel, notificationBoxIdentity, notificationBoxModelCrudFunctionsConfig, notificationBoxRecipientTemplateConfigArrayToRecord, notificationBoxRecipientTemplateConfigRecordToArray, notificationBoxesFlaggedForNeedsInitializationQuery, notificationBoxesFlaggedInvalidQuery, notificationCollectionReference, notificationCollectionReferenceFactory, notificationConverter, notificationFirestoreCollectionFactory, notificationFirestoreCollectionGroup, notificationFunctionMap, notificationFunctionTypeConfigMap, notificationIdentity, notificationMessageFunction, notificationSendExclusionCanSendFunction, notificationSendFlagsImplyIsComplete, notificationSubtaskComplete, notificationSummariesFlaggedForNeedsInitializationQuery, notificationSummaryCollectionReference, notificationSummaryConverter, notificationSummaryFirestoreCollection, notificationSummaryIdForModel, notificationSummaryIdForUidFunctionForRootFirestoreModelIdentity, notificationSummaryIdentity, notificationTaskCanRunNextCheckpoint, notificationTaskComplete, notificationTaskDelayRetry, notificationTaskFailed, notificationTaskPartiallyComplete, notificationTaskUniqueId, notificationTemplateTypeInfoRecord, notificationUserCollectionReference, notificationUserConverter, notificationUserFirestoreCollection, notificationUserHasExclusionQuery, notificationUserIdentity, notificationUsersFlaggedForNeedsSyncQuery, notificationWeekCollectionReference, notificationWeekCollectionReferenceFactory, notificationWeekConverter, notificationWeekFirestoreCollectionFactory, notificationWeekFirestoreCollectionGroup, notificationWeekIdentity, notificationsPastSendAtTimeQuery, notificationsReadyForCleanupQuery, offset, onCallCreateModelParams, onCallCreateModelResult, onCallCreateModelResultWithDocs, onCallDeleteModelParams, onCallDevelopmentParams, onCallReadModelParams, onCallTypedModelParams, onCallTypedModelParamsFunction, onCallUpdateModelParams, optionalFirestoreArray, optionalFirestoreBoolean, optionalFirestoreDate, optionalFirestoreDateNumber, optionalFirestoreEnum, optionalFirestoreField, optionalFirestoreNumber, optionalFirestoreString, optionalFirestoreUID, optionalFirestoreUnitedStatesAddress, optionalFirestoreUnixDateTimeSecondsNumber, orderBy, orderByDocumentId, readFirestoreModelKey, readFirestoreModelKeyFromDocumentSnapshot, replaceConstraints, selectFromFirebaseModelsService, separateConstraints, setIdAndKeyFromKeyIdRefOnDocumentData, setIdAndKeyFromSnapshotOnDocumentData, shouldSaveNotificationToNotificationWeek, shouldSendCreatedNotificationInput, snapshotConverterFunctions, snapshotStreamDataForAccessor, snapshotStreamForAccessor, sortNotificationItemsFunction, startAfter, startAt, startAtValue, storageFileCollectionReference, storageFileConverter, storageFileFirestoreCollection, storageFileFlaggedForSyncWithGroupsQuery, storageFileFunctionMap, storageFileFunctionTypeConfigMap, storageFileGroupCollectionReference, storageFileGroupConverter, storageFileGroupCreateStorageFileKeyFactory, storageFileGroupCreatedStorageFileKey, storageFileGroupEmbeddedFile, storageFileGroupFirestoreCollection, storageFileGroupFolderPath, storageFileGroupIdForModel, storageFileGroupIdentity, storageFileGroupZipFileStoragePath, storageFileGroupZipStorageFileKey, storageFileGroupsFlaggedForContentRegenerationQuery, storageFileGroupsFlaggedForNeedsInitializationQuery, storageFileGroupsFlaggedInvalidQuery, storageFileIdentity, storageFileModelCrudFunctionsConfig, storageFileProcessingNotificationTaskTemplate, storageFilePurposeAndUserQuery, storageFileUploadUserSimpleClaimsConfiguration, storageFilesQueuedForDeleteQuery, storageFilesQueuedForProcessingQuery, storageListFilesResultFactory, storageListFilesResultHasNoNextError, storagePathFactory, storedFileReaderFactory, streamDocumentSnapshotDataPairs, streamDocumentSnapshotDataPairsWithData, streamDocumentSnapshotsData, streamFromOnSnapshot, systemStateCollectionReference, systemStateConverter, systemStateFirestoreCollection, systemStateIdentity, twoWayFlatFirestoreModelKey, unreadNotificationItems, unsupportedFirestoreDriverFunctionError, updateNotificationBoxRecipientTemplateConfigRecord, updateNotificationRecipient, updateNotificationUserDefaultNotificationBoxRecipientConfig, updateNotificationUserNotificationBoxRecipientConfigIfChanged, updateNotificationUserNotificationBoxRecipientConfigs, updateNotificationUserNotificationSendExclusions, updateWithAccessorUpdateAndConverterFunction, uploadFileWithStream, useContextAuth, useContextAuthUid, useDocumentSnapshot, useDocumentSnapshotData, useFirebaseModelsService, userUploadsFolderSlashPathFactory, userUploadsFolderStoragePathFactory, where, whereDateIsAfter, whereDateIsAfterWithSort, whereDateIsBefore, whereDateIsBeforeWithSort, whereDateIsBetween, whereDateIsInRange, whereDateIsOnOrAfter, whereDateIsOnOrAfterWithSort, whereDateIsOnOrBefore, whereDateIsOnOrBeforeWithSort, whereDocumentId, whereStringHasRootIdentityModelKey, whereStringValueHasPrefix };
|
|
9253
9677
|
//# sourceMappingURL=index.esm.js.map
|