UNPKG

@firebase/firestore

Version:

The Cloud Firestore component of the Firebase JS SDK.

127 lines (126 loc) 5.38 kB
/** * @license * Copyright 2020 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import { FirebaseApp } from '@firebase/app-exp'; import { FirebaseAuthInternalName } from '@firebase/auth-interop-types'; import { Provider } from '@firebase/component'; import { EmulatorMockTokenOptions } from '@firebase/util'; import { CredentialsProvider } from '../api/credentials'; import { DatabaseId } from '../core/database_info'; import { FirestoreService } from './components'; import { FirestoreSettings, PrivateSettings, Settings } from './settings'; declare module '@firebase/component' { interface NameServiceMapping { 'firestore/lite': FirebaseFirestore; } } /** * The Cloud Firestore service interface. * * Do not call this constructor directly. Instead, use {@link getFirestore}. */ export declare class FirebaseFirestore implements FirestoreService { type: 'firestore-lite' | 'firestore'; readonly _databaseId: DatabaseId; readonly _persistenceKey: string; _credentials: CredentialsProvider; private _settings; private _settingsFrozen; private _terminateTask?; _app?: FirebaseApp; /** @hideconstructor */ constructor(databaseIdOrApp: DatabaseId | FirebaseApp, authProvider: Provider<FirebaseAuthInternalName>); /** * The {@link @firebase/app#FirebaseApp} associated with this `Firestore` service * instance. */ get app(): FirebaseApp; get _initialized(): boolean; get _terminated(): boolean; _setSettings(settings: PrivateSettings): void; _getSettings(): FirestoreSettings; _freezeSettings(): FirestoreSettings; _delete(): Promise<void>; /** Returns a JSON-serializable representation of this Firestore instance. */ toJSON(): object; /** * Terminates all components used by this client. Subclasses can override * this method to clean up their own dependencies, but must also call this * method. * * Only ever called once. */ protected _terminate(): Promise<void>; } /** * Initializes a new instance of Cloud Firestore with the provided settings. * Can only be called before any other functions, including * {@link getFirestore}. If the custom settings are empty, this function is * equivalent to calling {@link getFirestore}. * * @param app - The {@link @firebase/app#FirebaseApp} with which the `Firestore` instance will * be associated. * @param settings - A settings object to configure the `Firestore` instance. * @returns A newly initialized Firestore instance. */ export declare function initializeFirestore(app: FirebaseApp, settings: Settings): FirebaseFirestore; /** * Returns the existing instance of Firestore that is associated with the * provided {@link @firebase/app#FirebaseApp}. If no instance exists, initializes a new * instance with default settings. * * @param app - The {@link @firebase/app#FirebaseApp} instance that the returned Firestore * instance is associated with. * @returns The `Firestore` instance of the provided app. */ export declare function getFirestore(app?: FirebaseApp): FirebaseFirestore; /** * Modify this instance to communicate with the Cloud Firestore emulator. * * Note: This must be called before this instance has been used to do any * operations. * * @param firestore - The Firestore instance to configure to connect to the * emulator. * @param host - the emulator host (ex: localhost). * @param port - the emulator port (ex: 9000). * @param options.mockUserToken - the mock auth token to use for unit testing * Security Rules. */ export declare function useFirestoreEmulator(firestore: FirebaseFirestore, host: string, port: number, options?: { mockUserToken?: EmulatorMockTokenOptions; }): void; /** * Terminates the provided Firestore instance. * * After calling `terminate()` only the `clearIndexedDbPersistence()` functions * may be used. Any other function will throw a `FirestoreError`. Termination * does not cancel any pending writes, and any promises that are awaiting a * response from the server will not be resolved. * * To restart after termination, create a new instance of FirebaseFirestore with * {@link getFirestore}. * * Note: Under normal circumstances, calling `terminate()` is not required. This * function is useful only when you want to force this instance to release all of * its resources or in combination with {@link clearIndexedDbPersistence} to * ensure that all local state is destroyed between test runs. * * @param firestore - The Firestore instance to terminate. * @returns A promise that is resolved when the instance has been successfully * terminated. */ export declare function terminate(firestore: FirebaseFirestore): Promise<void>;