svelte-firebase-state
Version:
Simplify Firebase integration in Svelte and SvelteKit with reactive state management for Firestore and Realtime Database.
31 lines (30 loc) • 1.69 kB
TypeScript
import { type Query, type DocumentData, type CollectionReference, type AggregateSpec } from "firebase/firestore";
import { FirestoreState, type FirestoreStateOptions, type PathParam, type QueryParamsFn } from "./FirestoreState.svelte.js";
type CollectionStateOptions<DataDb extends DocumentData, DataApp extends DocumentData> = Omit<FirestoreStateOptions<DataDb, DataApp>, "pathFunctionOrString"> & {
path: PathParam;
query?: QueryParamsFn;
aggregate?: AggregateSpec;
};
export declare class CollectionState<DataDb extends DocumentData, DataApp extends DocumentData = DataDb & {
id: string;
}, AggregateData = any> extends FirestoreState<DataDb, DataApp, DataApp[]> {
private readonly queryFunction?;
private readonly aggregateState?;
private queryRef;
private collectionRef;
constructor({ auth, firestore, query: queryFunction, path: pathFunctionOrString, listen, fromFirestore, toFirestore, aggregate, converter }: CollectionStateOptions<DataDb, DataApp>);
private get_collection_from_path;
protected init(): Promise<void>;
private setup_query_ref;
private map_data;
protected fetch_data(): Promise<void>;
protected listen_data(callback?: (d: DataApp[]) => void): Promise<void>;
add(data: DataDb | DataApp): Promise<string | void>;
get aggregateData(): AggregateData | null | undefined;
delete(id: string): Promise<void>;
get_doc_ref(id: string): import("firebase/firestore").DocumentReference<DataApp, DataDb>;
refetch_aggregate_data(): void;
get_query_ref(): Promise<Query<DataApp, DataDb> | undefined>;
get_collection_ref(): Promise<CollectionReference<DataApp, DataDb> | undefined>;
}
export {};