@react-native-firebase/database
Version:
React Native Firebase - The Firebase Realtime Database is a cloud-hosted database. Data is stored as JSON and synchronized in realtime to every connected client. React Native Firebase provides native integration with the Android & iOS Firebase SDKs, suppo
233 lines (216 loc) • 8.17 kB
TypeScript
import { ReactNativeFirebase } from '@react-native-firebase/app';
import { FirebaseDatabaseTypes } from '..';
import FirebaseApp = ReactNativeFirebase.FirebaseApp;
import Database = FirebaseDatabaseTypes.Module;
import DatabaseReference = FirebaseDatabaseTypes.Reference;
/**
* Returns the instance of the Realtime Database SDK that is associated with
* the provided FirebaseApp. Initializes a new instance with
* default settings if no instance exists or if the existing
* instance uses a custom database URL.
*
* @param {FirebaseApp?} app - The FirebaseApp instance that the returned Realtime Database instance is associated with.
* @param {string?} url
* @returns {*}
*/
export declare function getDatabase(app?: FirebaseApp, url?: string): Database;
/**
* Modify this Database instance to communicate with the Firebase Database emulator.
* This must be called synchronously immediately following the first call to firebase.database().
* Do not use with production credentials as emulator traffic is not encrypted.
*
* Note: on android, hosts 'localhost' and '127.0.0.1' are automatically remapped to '10.0.2.2' (the
* "host" computer IP address for android emulators) to make the standard development experience easy.
* If you want to use the emulator on a real android device, you will need to specify the actual host
* computer IP address.
*
* @param db: The Database instance
* @param host: emulator host (eg, 'localhost')
* @param port: emulator port (eg, 9000)
*/
export declare function connectDatabaseEmulator(
db: Database,
host: string,
port: number,
// TODO: this exists in both the JS namespaced and modular versions of the SDK.
// But the RNFB namespaced version doesn't have it.
// options?: {
// mockUserToken?: EmulatorMockTokenOptions | string;
// },
): void;
/**
* Disconnects from the server (all Database operations will be completed offline).
*
* The client automatically maintains a persistent connection to the Database server, which
* will remain active indefinitely and reconnect when disconnected. However, the `goOffline()` and
* `goOnline()` methods may be used to control the client connection in cases where a persistent
* connection is undesirable.
*
* While offline, the client will no longer receive data updates from the Database. However,
* all Database operations performed locally will continue to immediately fire events, allowing
* your application to continue behaving normally. Additionally, each operation performed locally
* will automatically be queued and retried upon reconnection to the Database server.
*
* To reconnect to the Database and begin receiving remote events, see `goOnline()`.
*
* #### Example
*
* ```js
* const db = getDatabase();;
* await goOnline(db);
* ```
*/
export declare function goOffline(db: Database): Promise<void>;
/**
* Reconnects to the server and synchronizes the offline Database state with the server state.
*
* This method should be used after disabling the active connection with `goOffline()`. Once
* reconnected, the client will transmit the proper data and fire the appropriate events so that
* your client "catches up" automatically.
*
* #### Example
*
* ```js
* const db = getDatabase();
* await goOnline(db);
* ```
*/
export declare function goOnline(db: Database): Promise<void>;
/**
* Returns a `Reference` representing the location in the Database corresponding to the provided path.
* If no path is provided, the Reference will point to the root of the Database.
*
* #### Example
*
* ```js
* const db = getDatabase();
*
* // Get a reference to the root of the Database
* const rootRef = ref(db);
*
* // Get a reference to the /users/ada node
* const adaRef = ref(db, "users/ada");
* ```
*
* @param db The Database instance.
* @param path Optional path representing the location the returned `Reference` will point. If not provided, the returned `Reference` will point to the root of the Database.
*/
export declare function ref(db: Database, path?: string): DatabaseReference;
/**
* Generates a Reference from a database URL.
* Note domain must be the same.
* Any query parameters are stripped as per the web SDK.
*
* @param db The Database instance.
* @param url The Firebase URL at which the returned Reference will point.
* @returns {DatabaseReference}
*/
export declare function refFromURL(db: Database, url: string): DatabaseReference;
/**
* Sets whether persistence is enabled for all database calls for the current app
* instance.
*
* > Ensure this is called before any database calls are performed, otherwise
* persistence will only come into effect when the app is next started.
*
* #### Example
*
* ```js
* const db = getDatabase();
* setPersistenceEnabled(db, true);
*
* async function bootstrap() {
* // Bootstrapping application
* const snapshot = await ref(db, "settings").once("value");
* }
* ```
*
* @param db The Database instance.
* @param enabled Whether persistence is enabled for the Database service.
*/
export declare function setPersistenceEnabled(db: Database, enabled: boolean): void;
/**
* Sets the native logging level for the database module. By default,
* only warnings and errors are logged natively. Setting this to true will log all
* database events.
*
* > Ensure logging is disabled for production apps, as excessive logging can cause performance issues.
*
* #### Example
*
* ```js
* const db = getDatabase();
*
* // Set debug logging if developing
* if (__DEV__) {
* setLoggingEnabled(db, true);
* }
* ```
*
* @param db The Database instance.
* @param enabled Whether debug logging is enabled.
* @returns {void}
*/
export declare function setLoggingEnabled(db: Database, enabled: boolean): void;
/**
* By default, Firebase Database will use up to 10MB of disk space to cache data. If the cache grows beyond this size,
* Firebase Database will start removing data that hasn't been recently used. If you find that your application
* caches too little or too much data, call this method to change the cache size. This method must be called before
* creating your first Database reference and only needs to be called once per application.
*
* Note that the specified cache size is only an approximation and the size on disk may temporarily exceed it at times.
* Cache sizes smaller than 1 MB or greater than 100 MB are not supported.
*
* #### Example
*
* ```js
* const db = getDatabase();
*
* setPersistenceEnabled(db, true);
* setPersistenceCacheSizeBytes(db, 2000000); // 2MB
*
* async function bootstrap() {
* // Bootstrapping application
* const snapshot = await ref(db, 'settings').once("value");
* }
* ```
*
* @param db The Database instance.
* @param bytes The new size of the cache in bytes.
*/
export declare function setPersistenceCacheSizeBytes(db: Database, bytes: number): void;
/**
* Force the use of longPolling instead of websockets. This will be ignored if websocket protocol is used in databaseURL.
*/
export declare function forceLongPolling(): void;
/**
* Force the use of websockets instead of longPolling.
*/
export declare function forceWebSockets(): void;
/**
* Returns a placeholder value for auto-populating the current timestamp (time
* since the Unix epoch, in milliseconds) as determined by the Firebase
* servers.
*/
export function serverTimestamp(): object;
/**
* Returns the current Firebase Database server time as a JavaScript Date object.
*/
export function getServerTime(db: Database): Promise<number>;
/**
* Returns a placeholder value that can be used to atomically increment the
* current database value by the provided delta.
*
* @param delta - the amount to modify the current value atomically.
* @returns A placeholder value for modifying data atomically server-side.
*/
export function increment(delta: number): object;
/**
* Logs debugging information to the console. Not implemented on native.
*
* @param enabled
* @param persistent
*/
export declare function enableLogging(enabled: boolean, persistent?: boolean): any;
export * from './query';
export * from './transaction';