react-query-firebase 2.0.0-rc3 → 2.0.0-rc5
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/dist/src/firestore/useCollectionReference.d.ts +1 -1
- package/dist/src/firestore/useCollectionReference.js +1 -1
- package/dist/src/firestore/useCountQuery.d.ts +2 -2
- package/dist/src/firestore/useCountQuery.js +3 -3
- package/dist/src/firestore/useDocReference.d.ts +1 -1
- package/dist/src/firestore/useDocReference.js +2 -2
- package/dist/src/firestore/useInfiniteQuery.d.ts +2 -2
- package/dist/src/firestore/useInfiniteQuery.js +3 -3
- package/dist/src/firestore/useQuery.d.ts +3 -3
- package/dist/src/firestore/useQuery.js +4 -4
- package/package.json +1 -1
- package/src/firestore/useCollectionReference.ts +12 -4
- package/src/firestore/useCountQuery.ts +4 -4
- package/src/firestore/useDocReference.ts +3 -3
- package/src/firestore/useInfiniteQuery.ts +4 -4
- package/src/firestore/useQuery.ts +5 -5
|
@@ -15,4 +15,4 @@ export type UseCollectionReferenceOptions<AppModelType extends FirebaseFirestore
|
|
|
15
15
|
* @param {string[]} options.pathSegments - Additional path segments to append to the base path.
|
|
16
16
|
* @returns {CollectionReference} A Firestore collection reference constructed using the specified path, reference, and path segments.
|
|
17
17
|
*/
|
|
18
|
-
export declare const useCollectionReference: <AppModelType extends FirebaseFirestoreTypes.DocumentData = FirebaseFirestoreTypes.DocumentData>({ path, reference, pathSegments }: UseCollectionReferenceOptions<AppModelType>) => FirebaseFirestoreTypes.CollectionReference<
|
|
18
|
+
export declare const useCollectionReference: <AppModelType extends FirebaseFirestoreTypes.DocumentData = FirebaseFirestoreTypes.DocumentData>({ path, reference, pathSegments }: UseCollectionReferenceOptions<AppModelType>) => FirebaseFirestoreTypes.CollectionReference<AppModelType> | null;
|
|
@@ -18,5 +18,5 @@ export const useCollectionReference = ({ path, reference, pathSegments }) => {
|
|
|
18
18
|
return !reference
|
|
19
19
|
? collection(db, path || "", ...(pathSegments || []))
|
|
20
20
|
: collection(reference, path, ...(pathSegments || []));
|
|
21
|
-
}, [
|
|
21
|
+
}, [db, reference, path, pathSegments]);
|
|
22
22
|
};
|
|
@@ -2,7 +2,7 @@ import { FirebaseFirestoreTypes, QueryConstraint, QueryNonFilterConstraint } fro
|
|
|
2
2
|
import { UseQueryResult, UseQueryOptions as UseReactQueryOptions } from "@tanstack/react-query";
|
|
3
3
|
type UseCountQueryOptions<AppModelType extends FirebaseFirestoreTypes.DocumentData = FirebaseFirestoreTypes.DocumentData> = {
|
|
4
4
|
options: Omit<UseReactQueryOptions<number, Error, number>, "queryFn"> & Required<Pick<UseReactQueryOptions<number, Error, number>, "queryKey">>;
|
|
5
|
-
|
|
5
|
+
collectionReference: FirebaseFirestoreTypes.CollectionReference<AppModelType>;
|
|
6
6
|
queryConstraints?: QueryConstraint[] | QueryNonFilterConstraint[];
|
|
7
7
|
compositeFilter?: FirebaseFirestoreTypes.QueryCompositeFilterConstraint;
|
|
8
8
|
};
|
|
@@ -19,5 +19,5 @@ type UseCountQueryOptions<AppModelType extends FirebaseFirestoreTypes.DocumentDa
|
|
|
19
19
|
* @param {unknown} [options.compositeFilter] - An optional composite filter to apply to the query.
|
|
20
20
|
* @returns {UseQueryResult<number>} An object containing the number of documents that match the query.
|
|
21
21
|
*/
|
|
22
|
-
export declare const useCountQuery: <AppModelType extends FirebaseFirestoreTypes.DocumentData = FirebaseFirestoreTypes.DocumentData>({ options,
|
|
22
|
+
export declare const useCountQuery: <AppModelType extends FirebaseFirestoreTypes.DocumentData = FirebaseFirestoreTypes.DocumentData>({ options, collectionReference, queryConstraints, compositeFilter }: UseCountQueryOptions<AppModelType>) => UseQueryResult<number>;
|
|
23
23
|
export {};
|
|
@@ -13,13 +13,13 @@ import { useQuery as useReactQuery } from "@tanstack/react-query";
|
|
|
13
13
|
* @param {unknown} [options.compositeFilter] - An optional composite filter to apply to the query.
|
|
14
14
|
* @returns {UseQueryResult<number>} An object containing the number of documents that match the query.
|
|
15
15
|
*/
|
|
16
|
-
export const useCountQuery = ({ options,
|
|
16
|
+
export const useCountQuery = ({ options, collectionReference, queryConstraints = [], compositeFilter }) => {
|
|
17
17
|
return useReactQuery({
|
|
18
18
|
...options,
|
|
19
19
|
queryFn: async () => {
|
|
20
20
|
const queryToExecute = compositeFilter
|
|
21
|
-
? query(
|
|
22
|
-
: query(
|
|
21
|
+
? query(collectionReference, compositeFilter, ...queryConstraints)
|
|
22
|
+
: query(collectionReference, ...queryConstraints);
|
|
23
23
|
const querySnapshot = await getCountFromServer(queryToExecute);
|
|
24
24
|
if (querySnapshot) {
|
|
25
25
|
return querySnapshot.data().count;
|
|
@@ -14,6 +14,6 @@ export type UseDocReferenceOptions<AppModelType extends FirebaseFirestoreTypes.D
|
|
|
14
14
|
* @param {DbModelType} options.reference - Reference data for the document, providing additional context or specifics.
|
|
15
15
|
* @param {string[]} options.pathSegments - Parts of the path to construct the full document path dynamically.
|
|
16
16
|
*
|
|
17
|
-
* @returns {DocumentReference<AppModelType> | null} The Firestore document reference corresponding to the provided path and options, or null if not initialized.
|
|
17
|
+
* @returns {FirebaseFirestoreTypes.DocumentReference<AppModelType> | null} The Firestore document reference corresponding to the provided path and options, or null if not initialized.
|
|
18
18
|
*/
|
|
19
19
|
export declare const useDocReference: <AppModelType extends FirebaseFirestoreTypes.DocumentData = FirebaseFirestoreTypes.DocumentData>({ path, reference, pathSegments }: UseDocReferenceOptions<AppModelType>) => FirebaseFirestoreTypes.DocumentReference<AppModelType> | null;
|
|
@@ -29,13 +29,13 @@ const getDocReference = (db, { path, pathSegments, reference }) => {
|
|
|
29
29
|
* @param {DbModelType} options.reference - Reference data for the document, providing additional context or specifics.
|
|
30
30
|
* @param {string[]} options.pathSegments - Parts of the path to construct the full document path dynamically.
|
|
31
31
|
*
|
|
32
|
-
* @returns {DocumentReference<AppModelType> | null} The Firestore document reference corresponding to the provided path and options, or null if not initialized.
|
|
32
|
+
* @returns {FirebaseFirestoreTypes.DocumentReference<AppModelType> | null} The Firestore document reference corresponding to the provided path and options, or null if not initialized.
|
|
33
33
|
*/
|
|
34
34
|
export const useDocReference = ({ path, reference, pathSegments }) => {
|
|
35
35
|
const db = useFirestore();
|
|
36
36
|
const ref = useRef(getDocReference(db, { path, pathSegments, reference }));
|
|
37
37
|
useEffect(() => {
|
|
38
38
|
ref.current = getDocReference(db, { path, pathSegments, reference });
|
|
39
|
-
}, [path, reference, pathSegments]);
|
|
39
|
+
}, [db, path, reference, pathSegments]);
|
|
40
40
|
return ref.current;
|
|
41
41
|
};
|
|
@@ -2,7 +2,7 @@ import { FirebaseFirestoreTypes, QueryConstraint, QueryNonFilterConstraint } fro
|
|
|
2
2
|
import { UseInfiniteQueryOptions as UseReactInfiniteQueryOptions, QueryKey, UseInfiniteQueryResult, InfiniteData } from "@tanstack/react-query";
|
|
3
3
|
type UseInfiniteQueryOptions<AppModelType extends FirebaseFirestoreTypes.DocumentData = FirebaseFirestoreTypes.DocumentData, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown> = {
|
|
4
4
|
options: Omit<UseReactInfiniteQueryOptions<AppModelType[], Error, InfiniteData<AppModelType[]>, AppModelType[], TQueryKey, TPageParam>, "queryFn"> & Required<Pick<UseReactInfiniteQueryOptions<AppModelType[], Error, InfiniteData<AppModelType[]>, AppModelType[], TQueryKey, TPageParam>, "queryKey">>;
|
|
5
|
-
|
|
5
|
+
collectionReference: FirebaseFirestoreTypes.CollectionReference<AppModelType>;
|
|
6
6
|
queryConstraints?: QueryConstraint[] | QueryNonFilterConstraint[];
|
|
7
7
|
compositeFilter?: FirebaseFirestoreTypes.QueryCompositeFilterConstraint;
|
|
8
8
|
};
|
|
@@ -13,5 +13,5 @@ type UseInfiniteQueryOptions<AppModelType extends FirebaseFirestoreTypes.Documen
|
|
|
13
13
|
* @param {UseInfiniteQueryOptions<AppModelType, DbModelType>} options - Configuration options for the infinite query, including Firestore query reference, query constraints, composite filter, and data converter.
|
|
14
14
|
* @returns {UseInfiniteQueryResult<InfiniteData<AppModelType[]>>} Result object containing the infinite data and methods for fetching more pages.
|
|
15
15
|
*/
|
|
16
|
-
export declare const useInfiniteQuery: <AppModelType extends FirebaseFirestoreTypes.DocumentData = FirebaseFirestoreTypes.DocumentData>({ options,
|
|
16
|
+
export declare const useInfiniteQuery: <AppModelType extends FirebaseFirestoreTypes.DocumentData = FirebaseFirestoreTypes.DocumentData>({ options, collectionReference, queryConstraints, compositeFilter }: UseInfiniteQueryOptions<AppModelType>) => UseInfiniteQueryResult<InfiniteData<AppModelType[]>>;
|
|
17
17
|
export {};
|
|
@@ -7,14 +7,14 @@ import { useInfiniteQuery as useInfiniteReactQuery } from "@tanstack/react-query
|
|
|
7
7
|
* @param {UseInfiniteQueryOptions<AppModelType, DbModelType>} options - Configuration options for the infinite query, including Firestore query reference, query constraints, composite filter, and data converter.
|
|
8
8
|
* @returns {UseInfiniteQueryResult<InfiniteData<AppModelType[]>>} Result object containing the infinite data and methods for fetching more pages.
|
|
9
9
|
*/
|
|
10
|
-
export const useInfiniteQuery = ({ options,
|
|
10
|
+
export const useInfiniteQuery = ({ options, collectionReference, queryConstraints = [], compositeFilter }) => {
|
|
11
11
|
return useInfiniteReactQuery({
|
|
12
12
|
...options,
|
|
13
13
|
queryFn: async ({ pageParam }) => {
|
|
14
14
|
const allQueryConstraints = [...queryConstraints, ...(pageParam ? [pageParam] : [])];
|
|
15
15
|
const queryToExecute = compositeFilter
|
|
16
|
-
? query(
|
|
17
|
-
: query(
|
|
16
|
+
? query(collectionReference, compositeFilter, ...allQueryConstraints)
|
|
17
|
+
: query(collectionReference, ...allQueryConstraints);
|
|
18
18
|
const querySnapshot = await getDocs(queryToExecute);
|
|
19
19
|
const docs = [];
|
|
20
20
|
if (querySnapshot) {
|
|
@@ -2,7 +2,7 @@ import { FirebaseFirestoreTypes, QueryConstraint, QueryNonFilterConstraint } fro
|
|
|
2
2
|
import { UseQueryResult, UseQueryOptions as UseReactQueryOptions } from "@tanstack/react-query";
|
|
3
3
|
type UseQueryOptions<AppModelType extends FirebaseFirestoreTypes.DocumentData> = {
|
|
4
4
|
options: Omit<UseReactQueryOptions<AppModelType[], Error, AppModelType[]>, "queryFn"> & Required<Pick<UseReactQueryOptions<AppModelType[], Error, AppModelType[]>, "queryKey">>;
|
|
5
|
-
|
|
5
|
+
collectionReference: FirebaseFirestoreTypes.CollectionReference<AppModelType>;
|
|
6
6
|
queryConstraints?: QueryConstraint[] | QueryNonFilterConstraint[];
|
|
7
7
|
compositeFilter?: FirebaseFirestoreTypes.QueryCompositeFilterConstraint;
|
|
8
8
|
};
|
|
@@ -13,12 +13,12 @@ type UseQueryOptions<AppModelType extends FirebaseFirestoreTypes.DocumentData> =
|
|
|
13
13
|
* reference and constraints. It supports optional filtering, conversion, and additional query constraints.
|
|
14
14
|
*
|
|
15
15
|
* @param {UseQueryOptions<AppModelType>} options - Configuration options for the query.
|
|
16
|
-
* @param {FirebaseFirestoreTypes.DocumentReference<AppModelType>}
|
|
16
|
+
* @param {FirebaseFirestoreTypes.DocumentReference<AppModelType>} collectionReference - The reference to the query to be executed.
|
|
17
17
|
* @param {QueryConstraint[]} queryConstraints - Additional constraints to fine-tune the query.
|
|
18
18
|
* @param {QueryConstraint} compositeFilter - Optional composite filter to apply to the query.
|
|
19
19
|
* @param {FirestoreDataConverter<AppModelType>} converter - Optional data converter for transforming snapshots.
|
|
20
20
|
*
|
|
21
21
|
* @returns {UseQueryResult<AppModelType[]>} Result containing an array of documents that match the query criteria.
|
|
22
22
|
*/
|
|
23
|
-
export declare const useQuery: <AppModelType extends FirebaseFirestoreTypes.DocumentData = FirebaseFirestoreTypes.DocumentData>({ options,
|
|
23
|
+
export declare const useQuery: <AppModelType extends FirebaseFirestoreTypes.DocumentData = FirebaseFirestoreTypes.DocumentData>({ options, collectionReference, queryConstraints, compositeFilter }: UseQueryOptions<AppModelType>) => UseQueryResult<AppModelType[]>;
|
|
24
24
|
export {};
|
|
@@ -7,20 +7,20 @@ import { useQuery as useReactQuery } from "@tanstack/react-query";
|
|
|
7
7
|
* reference and constraints. It supports optional filtering, conversion, and additional query constraints.
|
|
8
8
|
*
|
|
9
9
|
* @param {UseQueryOptions<AppModelType>} options - Configuration options for the query.
|
|
10
|
-
* @param {FirebaseFirestoreTypes.DocumentReference<AppModelType>}
|
|
10
|
+
* @param {FirebaseFirestoreTypes.DocumentReference<AppModelType>} collectionReference - The reference to the query to be executed.
|
|
11
11
|
* @param {QueryConstraint[]} queryConstraints - Additional constraints to fine-tune the query.
|
|
12
12
|
* @param {QueryConstraint} compositeFilter - Optional composite filter to apply to the query.
|
|
13
13
|
* @param {FirestoreDataConverter<AppModelType>} converter - Optional data converter for transforming snapshots.
|
|
14
14
|
*
|
|
15
15
|
* @returns {UseQueryResult<AppModelType[]>} Result containing an array of documents that match the query criteria.
|
|
16
16
|
*/
|
|
17
|
-
export const useQuery = ({ options,
|
|
17
|
+
export const useQuery = ({ options, collectionReference, queryConstraints = [], compositeFilter }) => {
|
|
18
18
|
return useReactQuery({
|
|
19
19
|
...options,
|
|
20
20
|
queryFn: async () => {
|
|
21
21
|
const queryToExecute = compositeFilter
|
|
22
|
-
? query(
|
|
23
|
-
: query(
|
|
22
|
+
? query(collectionReference, compositeFilter, ...queryConstraints)
|
|
23
|
+
: query(collectionReference, ...queryConstraints);
|
|
24
24
|
const querySnapshot = await getDocs(queryToExecute);
|
|
25
25
|
const docs = [];
|
|
26
26
|
if (querySnapshot) {
|
package/package.json
CHANGED
|
@@ -30,12 +30,20 @@ export const useCollectionReference = <
|
|
|
30
30
|
path,
|
|
31
31
|
reference,
|
|
32
32
|
pathSegments
|
|
33
|
-
}: UseCollectionReferenceOptions<AppModelType>) => {
|
|
33
|
+
}: UseCollectionReferenceOptions<AppModelType>): FirebaseFirestoreTypes.CollectionReference<AppModelType> | null => {
|
|
34
34
|
const db = useFirestore();
|
|
35
35
|
|
|
36
36
|
return useMemo(() => {
|
|
37
37
|
return !reference
|
|
38
|
-
? collection(
|
|
39
|
-
|
|
40
|
-
|
|
38
|
+
? (collection(
|
|
39
|
+
db,
|
|
40
|
+
path || "",
|
|
41
|
+
...(pathSegments || [])
|
|
42
|
+
) as FirebaseFirestoreTypes.CollectionReference<AppModelType>)
|
|
43
|
+
: (collection(
|
|
44
|
+
reference,
|
|
45
|
+
path,
|
|
46
|
+
...(pathSegments || [])
|
|
47
|
+
) as FirebaseFirestoreTypes.CollectionReference<AppModelType>);
|
|
48
|
+
}, [db, reference, path, pathSegments]);
|
|
41
49
|
};
|
|
@@ -17,7 +17,7 @@ type UseCountQueryOptions<
|
|
|
17
17
|
> = {
|
|
18
18
|
options: Omit<UseReactQueryOptions<number, Error, number>, "queryFn"> &
|
|
19
19
|
Required<Pick<UseReactQueryOptions<number, Error, number>, "queryKey">>;
|
|
20
|
-
|
|
20
|
+
collectionReference: FirebaseFirestoreTypes.CollectionReference<AppModelType>;
|
|
21
21
|
queryConstraints?: QueryConstraint[] | QueryNonFilterConstraint[];
|
|
22
22
|
compositeFilter?: FirebaseFirestoreTypes.QueryCompositeFilterConstraint;
|
|
23
23
|
};
|
|
@@ -40,7 +40,7 @@ export const useCountQuery = <
|
|
|
40
40
|
AppModelType extends FirebaseFirestoreTypes.DocumentData = FirebaseFirestoreTypes.DocumentData
|
|
41
41
|
>({
|
|
42
42
|
options,
|
|
43
|
-
|
|
43
|
+
collectionReference,
|
|
44
44
|
queryConstraints = [],
|
|
45
45
|
compositeFilter
|
|
46
46
|
}: UseCountQueryOptions<AppModelType>): UseQueryResult<number> => {
|
|
@@ -48,8 +48,8 @@ export const useCountQuery = <
|
|
|
48
48
|
...options,
|
|
49
49
|
queryFn: async () => {
|
|
50
50
|
const queryToExecute = compositeFilter
|
|
51
|
-
? query(
|
|
52
|
-
: query(
|
|
51
|
+
? query(collectionReference, compositeFilter, ...(queryConstraints as QueryNonFilterConstraint[]))
|
|
52
|
+
: query(collectionReference, ...queryConstraints);
|
|
53
53
|
|
|
54
54
|
const querySnapshot = await getCountFromServer(queryToExecute);
|
|
55
55
|
if (querySnapshot) {
|
|
@@ -50,7 +50,7 @@ const getDocReference = <
|
|
|
50
50
|
* @param {DbModelType} options.reference - Reference data for the document, providing additional context or specifics.
|
|
51
51
|
* @param {string[]} options.pathSegments - Parts of the path to construct the full document path dynamically.
|
|
52
52
|
*
|
|
53
|
-
* @returns {DocumentReference<AppModelType> | null} The Firestore document reference corresponding to the provided path and options, or null if not initialized.
|
|
53
|
+
* @returns {FirebaseFirestoreTypes.DocumentReference<AppModelType> | null} The Firestore document reference corresponding to the provided path and options, or null if not initialized.
|
|
54
54
|
*/
|
|
55
55
|
export const useDocReference = <
|
|
56
56
|
AppModelType extends FirebaseFirestoreTypes.DocumentData = FirebaseFirestoreTypes.DocumentData
|
|
@@ -58,7 +58,7 @@ export const useDocReference = <
|
|
|
58
58
|
path,
|
|
59
59
|
reference,
|
|
60
60
|
pathSegments
|
|
61
|
-
}: UseDocReferenceOptions<AppModelType>) => {
|
|
61
|
+
}: UseDocReferenceOptions<AppModelType>): FirebaseFirestoreTypes.DocumentReference<AppModelType> | null => {
|
|
62
62
|
const db = useFirestore();
|
|
63
63
|
const ref = useRef<FirebaseFirestoreTypes.DocumentReference<AppModelType> | null>(
|
|
64
64
|
getDocReference(db, { path, pathSegments, reference })
|
|
@@ -66,7 +66,7 @@ export const useDocReference = <
|
|
|
66
66
|
|
|
67
67
|
useEffect(() => {
|
|
68
68
|
ref.current = getDocReference(db, { path, pathSegments, reference });
|
|
69
|
-
}, [path, reference, pathSegments]);
|
|
69
|
+
}, [db, path, reference, pathSegments]);
|
|
70
70
|
|
|
71
71
|
return ref.current;
|
|
72
72
|
};
|
|
@@ -43,7 +43,7 @@ type UseInfiniteQueryOptions<
|
|
|
43
43
|
"queryKey"
|
|
44
44
|
>
|
|
45
45
|
>;
|
|
46
|
-
|
|
46
|
+
collectionReference: FirebaseFirestoreTypes.CollectionReference<AppModelType>;
|
|
47
47
|
queryConstraints?: QueryConstraint[] | QueryNonFilterConstraint[];
|
|
48
48
|
compositeFilter?: FirebaseFirestoreTypes.QueryCompositeFilterConstraint;
|
|
49
49
|
};
|
|
@@ -59,7 +59,7 @@ export const useInfiniteQuery = <
|
|
|
59
59
|
AppModelType extends FirebaseFirestoreTypes.DocumentData = FirebaseFirestoreTypes.DocumentData
|
|
60
60
|
>({
|
|
61
61
|
options,
|
|
62
|
-
|
|
62
|
+
collectionReference,
|
|
63
63
|
queryConstraints = [],
|
|
64
64
|
compositeFilter
|
|
65
65
|
}: UseInfiniteQueryOptions<AppModelType>): UseInfiniteQueryResult<InfiniteData<AppModelType[]>> => {
|
|
@@ -68,8 +68,8 @@ export const useInfiniteQuery = <
|
|
|
68
68
|
queryFn: async ({ pageParam }) => {
|
|
69
69
|
const allQueryConstraints = [...queryConstraints, ...(pageParam ? [pageParam] : [])];
|
|
70
70
|
const queryToExecute = compositeFilter
|
|
71
|
-
? query(
|
|
72
|
-
: query(
|
|
71
|
+
? query(collectionReference, compositeFilter, ...(allQueryConstraints as QueryNonFilterConstraint[]))
|
|
72
|
+
: query(collectionReference, ...allQueryConstraints);
|
|
73
73
|
|
|
74
74
|
const querySnapshot = await getDocs(queryToExecute);
|
|
75
75
|
const docs: AppModelType[] = [];
|
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
type UseQueryOptions<AppModelType extends FirebaseFirestoreTypes.DocumentData> = {
|
|
16
16
|
options: Omit<UseReactQueryOptions<AppModelType[], Error, AppModelType[]>, "queryFn"> &
|
|
17
17
|
Required<Pick<UseReactQueryOptions<AppModelType[], Error, AppModelType[]>, "queryKey">>;
|
|
18
|
-
|
|
18
|
+
collectionReference: FirebaseFirestoreTypes.CollectionReference<AppModelType>;
|
|
19
19
|
queryConstraints?: QueryConstraint[] | QueryNonFilterConstraint[];
|
|
20
20
|
compositeFilter?: FirebaseFirestoreTypes.QueryCompositeFilterConstraint;
|
|
21
21
|
};
|
|
@@ -27,7 +27,7 @@ type UseQueryOptions<AppModelType extends FirebaseFirestoreTypes.DocumentData> =
|
|
|
27
27
|
* reference and constraints. It supports optional filtering, conversion, and additional query constraints.
|
|
28
28
|
*
|
|
29
29
|
* @param {UseQueryOptions<AppModelType>} options - Configuration options for the query.
|
|
30
|
-
* @param {FirebaseFirestoreTypes.DocumentReference<AppModelType>}
|
|
30
|
+
* @param {FirebaseFirestoreTypes.DocumentReference<AppModelType>} collectionReference - The reference to the query to be executed.
|
|
31
31
|
* @param {QueryConstraint[]} queryConstraints - Additional constraints to fine-tune the query.
|
|
32
32
|
* @param {QueryConstraint} compositeFilter - Optional composite filter to apply to the query.
|
|
33
33
|
* @param {FirestoreDataConverter<AppModelType>} converter - Optional data converter for transforming snapshots.
|
|
@@ -38,7 +38,7 @@ export const useQuery = <
|
|
|
38
38
|
AppModelType extends FirebaseFirestoreTypes.DocumentData = FirebaseFirestoreTypes.DocumentData
|
|
39
39
|
>({
|
|
40
40
|
options,
|
|
41
|
-
|
|
41
|
+
collectionReference,
|
|
42
42
|
queryConstraints = [],
|
|
43
43
|
compositeFilter
|
|
44
44
|
}: UseQueryOptions<AppModelType>): UseQueryResult<AppModelType[]> => {
|
|
@@ -46,8 +46,8 @@ export const useQuery = <
|
|
|
46
46
|
...options,
|
|
47
47
|
queryFn: async () => {
|
|
48
48
|
const queryToExecute = compositeFilter
|
|
49
|
-
? query(
|
|
50
|
-
: query(
|
|
49
|
+
? query(collectionReference, compositeFilter, ...(queryConstraints as QueryNonFilterConstraint[]))
|
|
50
|
+
: query(collectionReference, ...queryConstraints);
|
|
51
51
|
|
|
52
52
|
const querySnapshot = await getDocs(queryToExecute);
|
|
53
53
|
const docs: AppModelType[] = [];
|