simplyfire
Version:
A lightweight firestore api for firebase cloud functions & Angular.
29 lines (28 loc) • 1.64 kB
TypeScript
import type { DocumentData, DocumentReference, DocumentSnapshot, FieldValue, QuerySnapshot, SetOptions, Transaction, WriteBatch } from '@firebase/firestore-types';
import { QueryBuilder } from './QueryBuilder';
export declare abstract class AbstractFirestoreApi {
BATCH_MAX_WRITES: number;
abstract collection<T = any>(path: string, qb?: QueryBuilder, maxAge?: number): Promise<T[]>;
abstract collectionGroup<T = any>(collectionId: string, qb?: QueryBuilder, maxAge?: number): Promise<T[]>;
abstract collectionSnapshot(path: string, qb?: QueryBuilder): Promise<QuerySnapshot<DocumentData>>;
abstract doc<T = any>(path: string, maxAge?: number): Promise<T>;
abstract docRef(docPath: string): DocumentReference<DocumentData>;
abstract upsert(collection: string, data: {
[key: string]: any;
}, opts?: SetOptions): Promise<string>;
abstract update(docPath: string, data: {
[key: string]: any;
}): Promise<void>;
abstract delete(docPath: string): Promise<void>;
abstract bulkUpsert(collection: string, data: DocumentData[] | {
data: DocumentData;
qb?: QueryBuilder;
}, opts?: SetOptions): Promise<string[]>;
abstract bulkDelete(collection: string, qb?: QueryBuilder): Promise<string[]>;
abstract runTransaction(updateFunction: (transaction: Transaction) => Promise<unknown>): Promise<unknown>;
abstract get batch(): WriteBatch;
abstract get serverTimestamp(): FieldValue;
abstract increment(n?: number): FieldValue;
abstract createId(collection?: string): string;
getValueFromSnapshot<T = any>(snapshot: DocumentSnapshot): T;
}