simplyfire
Version:
A lightweight firestore api for firebase cloud functions & Angular.
49 lines (48 loc) • 2.07 kB
TypeScript
import type { QuerySnapshot, WriteBatch, DocumentData, SetOptions, DocumentReference, Transaction, CollectionReference, Settings as FirestoreSettings } from '@firebase/firestore-types';
import { AbstractFirestoreApi, QueryBuilder } from '../../ngx/db';
export declare class FirestoreCloudService extends AbstractFirestoreApi {
private db;
private admin;
private static instance;
static getInstance(admin: any, settings?: FirestoreSettings): FirestoreCloudService;
initialize(admin: any, settings: FirestoreSettings): void;
collection<T = any>(collection: string, qb?: QueryBuilder): Promise<T[]>;
collectionGroup<T = any>(collectionId: string, qb?: QueryBuilder): Promise<T[]>;
doc<T = any>(path: string): Promise<T>;
upsert(collection: string, data: {
[key: string]: any;
}, opts?: SetOptions): Promise<any>;
update(path: string, data: {
[key: string]: any;
}): Promise<void>;
delete(path: string): Promise<void>;
/**
* Bulk update data
*/
bulkUpsert(path: string, data: DocumentData[] | {
data: DocumentData;
qb?: QueryBuilder;
}, opts?: SetOptions): Promise<string[]>;
/**
* Bulk delete data
*/
bulkDelete(collection: string, qb?: QueryBuilder, maxSize?: number): Promise<any[]>;
get batch(): WriteBatch;
get serverTimestamp(): any;
increment(n?: number): any;
/**
* Returns a generated Firestore Document Id.
*/
createId(colPath?: string): string;
runTransaction(updateFunction: (transaction: Transaction) => Promise<unknown>): Promise<unknown>;
recursiveDelete(ref: CollectionReference<unknown> | DocumentReference<unknown>, bulkWriter?: any): any;
/**
* Create a Firestore Timestamp
*
* @param date
*/
createTimestamp(date?: Date): any;
collectionSnapshot(path: string, qb?: QueryBuilder): Promise<QuerySnapshot>;
collectionGroupSnapshot(collectionId: string, qb?: QueryBuilder): Promise<QuerySnapshot>;
docRef(path: string): DocumentReference<DocumentData>;
}