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
TypeScript
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 {};