@typed-firestore/server
Version:
Elegant, typed abstractions for Firestore in server environments
35 lines (29 loc) • 823 B
text/typescript
import type {
DocumentData,
DocumentReference,
Transaction,
} from "firebase-admin/firestore";
import {
getSpecificDocument,
getSpecificDocumentMaybe,
} from "./get-specific-document";
export async function getSpecificDocumentData<T extends DocumentData>(
ref: DocumentReference<T>
): Promise<T> {
const doc = await getSpecificDocument(ref);
return doc.data;
}
export async function getSpecificDocumentDataMaybe<T extends DocumentData>(
ref: DocumentReference<T>
): Promise<T | undefined> {
const doc = await getSpecificDocumentMaybe(ref);
return doc?.data;
}
export async function getSpecificDocumentDataMaybeTx<T extends DocumentData>(
tx: Transaction,
ref: DocumentReference<T>
): Promise<T | undefined> {
const doc = await tx.get(ref);
if (!doc.exists) return;
return doc.data();
}