diff --git a/.changeset/empty-boats-dream.md b/.changeset/empty-boats-dream.md new file mode 100644 index 00000000000..03c595000e4 --- /dev/null +++ b/.changeset/empty-boats-dream.md @@ -0,0 +1,6 @@ +--- +'@firebase/firestore-types': major +'firebase': major +--- + +Update to be consistent with the FirestoreDataConverter changes from #7310 diff --git a/packages/firestore-types/index.d.ts b/packages/firestore-types/index.d.ts index d198fd78866..7c813b55cbb 100644 --- a/packages/firestore-types/index.d.ts +++ b/packages/firestore-types/index.d.ts @@ -241,7 +241,10 @@ export interface GetOptions { readonly source?: 'default' | 'server' | 'cache'; } -export class DocumentReference { +export class DocumentReference< + T = DocumentData, + T2 extends DocumentData = DocumentData +> { private constructor(); readonly id: string; @@ -307,7 +310,10 @@ export interface SnapshotMetadata { isEqual(other: SnapshotMetadata): boolean; } -export class DocumentSnapshot { +export class DocumentSnapshot< + T = DocumentData, + T2 extends DocumentData = DocumentData +> { protected constructor(); readonly exists: boolean; @@ -323,8 +329,9 @@ export class DocumentSnapshot { } export class QueryDocumentSnapshot< - T = DocumentData -> extends DocumentSnapshot { + T = DocumentData, + T2 extends DocumentData = DocumentData +> extends DocumentSnapshot { private constructor(); data(options?: SnapshotOptions): T; @@ -344,7 +351,7 @@ export type WhereFilterOp = | 'array-contains-any' | 'not-in'; -export class Query { +export class Query { protected constructor(); readonly firestore: FirebaseFirestore; @@ -409,7 +416,10 @@ export class Query { withConverter(converter: FirestoreDataConverter): Query; } -export class QuerySnapshot { +export class QuerySnapshot< + T = DocumentData, + T2 extends DocumentData = DocumentData +> { private constructor(); readonly query: Query; @@ -430,14 +440,20 @@ export class QuerySnapshot { export type DocumentChangeType = 'added' | 'removed' | 'modified'; -export interface DocumentChange { +export interface DocumentChange< + T = DocumentData, + T2 extends DocumentData = DocumentData +> { readonly type: DocumentChangeType; readonly doc: QueryDocumentSnapshot; readonly oldIndex: number; readonly newIndex: number; } -export class CollectionReference extends Query { +export class CollectionReference< + T = DocumentData, + T2 extends DocumentData = DocumentData +> extends Query { private constructor(); readonly id: string;