UNPKG

svelte-firebase-state

Version:

Simplify Firebase integration in Svelte and SvelteKit with reactive state management for Firestore and Realtime Database.

32 lines (31 loc) 1.5 kB
import { type DocumentData, type DocumentReference } from "firebase/firestore"; import { FirestoreState, type FirestoreStateOptions, type PathParam, type QueryParamsFn } from "./FirestoreState.svelte.js"; type DocumentStateOptions<DataDb extends DocumentData, DataApp extends DocumentData> = Omit<FirestoreStateOptions<DataDb, DataApp>, "pathFunctionOrString"> & ({ path?: never; collectionPath?: PathParam; query?: QueryParamsFn; } | { path?: PathParam; collectionPath?: never; query?: never; }); export declare class DocumentState<DataDb extends DocumentData, DataApp extends DataDb & { id: string; } = DataDb & { id: string; }> extends FirestoreState<DataDb, DataApp, DataApp> { private readonly collectionPathFunctionOrString?; private readonly queryParams?; private docRef; private queryRef; constructor({ auth, firestore, path: pathFunctionOrString, collectionPath: collectionPathFunctionOrString, query: queryParams, listen, fromFirestore, toFirestore, converter }: DocumentStateOptions<DataDb, DataApp>); protected init(): Promise<DocumentReference | undefined | null>; protected fetch_data(): Promise<void>; protected listen_data(): Promise<void>; private listen_to_query; private listen_to_doc; private save_data_to_firebase; get_doc_ref(): Promise<DocumentReference | undefined | null>; save<K extends keyof DataApp>(key?: K, update?: DataApp[K] | ((prevValue: DataApp[K]) => DataApp[K])): void; } export {};