From d8efd509abeac0a4e14ecd90ea89ab02293f9dac Mon Sep 17 00:00:00 2001 From: Tyler Dixon Date: Thu, 16 Jul 2026 11:23:55 -0700 Subject: [PATCH] fix: remove NO_ID_FIELD sentinel from data hooks when idField is not provided --- src/database.tsx | 8 ++++---- src/firestore.tsx | 12 ++++++------ 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/database.tsx b/src/database.tsx index ede4f4a5..7ebc46d1 100644 --- a/src/database.tsx +++ b/src/database.tsx @@ -32,8 +32,8 @@ export function useDatabaseObject(ref: DatabaseReference, options?: } export function useDatabaseObjectData(ref: DatabaseReference, options?: ReactFireOptions): ObservableStatus { - const idField = options ? checkIdField(options) : 'NO_ID_FIELD'; - const observableId = `database:objectVal:${ref.toString()}:idField=${idField}`; + const idField = options ? checkIdField(options) : undefined; + const observableId = `database:objectVal:${ref.toString()}:idField=${idField ?? 'none'}`; const observable$ = objectVal(ref, { keyField: idField }); return useObservable(observableId, observable$, options); @@ -59,8 +59,8 @@ export function useDatabaseListData( ref: DatabaseReference | DatabaseQuery, options?: ReactFireOptions ): ObservableStatus { - const idField = options ? checkIdField(options) : 'NO_ID_FIELD'; - const observableId = `database:listVal:${getUniqueIdForDatabaseQuery(ref)}:idField=${idField}`; + const idField = options ? checkIdField(options) : undefined; + const observableId = `database:listVal:${getUniqueIdForDatabaseQuery(ref)}:idField=${idField ?? 'none'}`; const observable$ = listVal(ref, { keyField: idField }); return useObservable(observableId, observable$, options); } diff --git a/src/firestore.tsx b/src/firestore.tsx index 136d34e0..2d5a74bb 100644 --- a/src/firestore.tsx +++ b/src/firestore.tsx @@ -60,9 +60,9 @@ export function useFirestoreDocOnce(ref: DocumentReference, * Subscribe to Firestore Document changes and unwrap the document into a plain object */ export function useFirestoreDocData(ref: DocumentReference, options?: ReactFireOptions): ObservableStatus { - const idField = options ? checkIdField(options) : 'NO_ID_FIELD'; + const idField = options ? checkIdField(options) : undefined; - const observableId = `firestore:docData:${ref.firestore.app.name}:${ref.path}:idField=${idField}`; + const observableId = `firestore:docData:${ref.firestore.app.name}:${ref.path}:idField=${idField ?? 'none'}`; const observable = docData(ref, { idField }); return useObservable(observableId, observable, options) as ObservableStatus; @@ -72,9 +72,9 @@ export function useFirestoreDocData(ref: DocumentReference, opti * Get a Firestore document, unwrap the document into a plain object, and don't subscribe to changes */ export function useFirestoreDocDataOnce(ref: DocumentReference, options?: ReactFireOptions): ObservableStatus { - const idField = options ? checkIdField(options) : 'NO_ID_FIELD'; + const idField = options ? checkIdField(options) : undefined; - const observableId = `firestore:docDataOnce:${ref.firestore.app.name}:${ref.path}:idField=${idField}`; + const observableId = `firestore:docDataOnce:${ref.firestore.app.name}:${ref.path}:idField=${idField ?? 'none'}`; const observable$ = docData(ref, { idField }).pipe(first()); return useObservable(observableId, observable$, options) as ObservableStatus; @@ -94,8 +94,8 @@ export function useFirestoreCollection(query: FirestoreQuery(query: FirestoreQuery, options?: ReactFireOptions): ObservableStatus { - const idField = options ? checkIdField(options) : 'NO_ID_FIELD'; - const observableId = `firestore:collectionData:${getUniqueIdForFirestoreQuery(query)}:idField=${idField}`; + const idField = options ? checkIdField(options) : undefined; + const observableId = `firestore:collectionData:${getUniqueIdForFirestoreQuery(query)}:idField=${idField ?? 'none'}`; const observable$ = collectionData(query, { idField }); return useObservable(observableId, observable$, options);