From f6d23515a2c40f6da54b86612130cd458bd19b59 Mon Sep 17 00:00:00 2001
From: Jeff <3759507+jhuleatt@users.noreply.github.com>
Date: Wed, 10 Aug 2022 16:01:56 -0400
Subject: [PATCH] Move build from TSDX to Vite (#534)
---
.eslintrc.json | 36 +
.github/CONTRIBUTING.md | 18 +-
.github/workflows/docs.yaml | 26 +-
.github/workflows/test.yaml | 55 +-
.gitignore | 1 +
babel.config.js | 20 -
build.sh | 2 +-
docs/quickstart.md | 4 +-
docs/reference/README.md | 1649 +-
...ex.ReactFireError.md => ReactFireError.md} | 53 +-
.../SuspenseSubject.SuspenseSubject-1.md | 1202 -
...th.AuthCheckProps.md => AuthCheckProps.md} | 10 +-
docs/reference/interfaces/ClaimCheckErrors.md | 7 +
...laimsCheckProps.md => ClaimsCheckProps.md} | 12 +-
....ClaimsValidator.md => ClaimsValidator.md} | 6 +-
...bservableStatus.md => ObservableStatus.md} | 16 +-
...eactFireOptions.md => ReactFireOptions.md} | 18 +-
.../interfaces/SignInCheckOptionsBasic.md | 93 +
...t.md => SignInCheckOptionsClaimsObject.md} | 32 +-
.../SignInCheckOptionsClaimsValidator.md | 104 +
...pensePerfProps.md => SuspensePerfProps.md} | 10 +-
.../interfaces/auth.ClaimCheckErrors.md | 9 -
.../auth.SignInCheckOptionsBasic.md | 93 -
.../auth.SignInCheckOptionsClaimsValidator.md | 104 -
docs/reference/modules/SuspenseSubject.md | 9 -
docs/reference/modules/auth.md | 210 -
docs/reference/modules/database.md | 124 -
docs/reference/modules/firebaseApp.md | 94 -
docs/reference/modules/firestore.md | 215 -
docs/reference/modules/functions.md | 39 -
docs/reference/modules/index.md | 665 -
docs/reference/modules/performance.md | 33 -
docs/reference/modules/remote_config.md | 124 -
docs/reference/modules/sdk.md | 632 -
docs/reference/modules/storage.md | 90 -
docs/reference/modules/useObservable.md | 69 -
example/{styles.pcss => index.css} | 2 +-
example/index.html | 2 +-
example/index.tsx | 2 +-
example/package-lock.json | 7323 ++
example/package.json | 31 +-
.../{postcss.config.js => postcss.config.cjs} | 1 -
example/tailwind.config.cjs | 13 +
example/tailwind.config.js | 14 -
example/tsconfig.json | 40 +-
example/tsconfig.node.json | 9 +
example/vite.config.js | 7 +
example/withSuspense/Firestore.tsx | 12 +-
example/withoutSuspense/Firestore.tsx | 8 +-
example/yarn.lock | 6055 --
jest.config.js | 6 -
package-lock.json | 85650 ++++++----------
package.json | 108 +-
src/firebaseApp.tsx | 4 +-
test/auth.test.tsx | 9 +-
test/custom-jest-environment.js | 26 -
test/database.test.tsx | 5 +-
test/firebaseApp.test.tsx | 16 +-
test/firestore.test.tsx | 9 +-
test/functions.test.tsx | 3 +-
test/performance.test.tsx | 24 +-
test/sdk.test.tsx | 4 +-
test/setupTests.ts | 4 +
test/storage.test.tsx | 2 +-
test/useObservable.test.tsx | 4 +-
tsconfig.json | 9 +-
typedoc.json | 3 +-
vite.config.ts | 70 +
yarn.lock | 15660 ---
69 files changed, 39107 insertions(+), 81912 deletions(-)
create mode 100644 .eslintrc.json
delete mode 100644 babel.config.js
rename docs/reference/classes/{index.ReactFireError.md => ReactFireError.md} (67%)
delete mode 100644 docs/reference/classes/SuspenseSubject.SuspenseSubject-1.md
rename docs/reference/interfaces/{auth.AuthCheckProps.md => AuthCheckProps.md} (67%)
create mode 100644 docs/reference/interfaces/ClaimCheckErrors.md
rename docs/reference/interfaces/{auth.ClaimsCheckProps.md => ClaimsCheckProps.md} (69%)
rename docs/reference/interfaces/{auth.ClaimsValidator.md => ClaimsValidator.md} (66%)
rename docs/reference/interfaces/{useObservable.ObservableStatus.md => ObservableStatus.md} (79%)
rename docs/reference/interfaces/{index.ReactFireOptions.md => ReactFireOptions.md} (66%)
create mode 100644 docs/reference/interfaces/SignInCheckOptionsBasic.md
rename docs/reference/interfaces/{auth.SignInCheckOptionsClaimsObject.md => SignInCheckOptionsClaimsObject.md} (50%)
create mode 100644 docs/reference/interfaces/SignInCheckOptionsClaimsValidator.md
rename docs/reference/interfaces/{performance.SuspensePerfProps.md => SuspensePerfProps.md} (64%)
delete mode 100644 docs/reference/interfaces/auth.ClaimCheckErrors.md
delete mode 100644 docs/reference/interfaces/auth.SignInCheckOptionsBasic.md
delete mode 100644 docs/reference/interfaces/auth.SignInCheckOptionsClaimsValidator.md
delete mode 100644 docs/reference/modules/SuspenseSubject.md
delete mode 100644 docs/reference/modules/auth.md
delete mode 100644 docs/reference/modules/database.md
delete mode 100644 docs/reference/modules/firebaseApp.md
delete mode 100644 docs/reference/modules/firestore.md
delete mode 100644 docs/reference/modules/functions.md
delete mode 100644 docs/reference/modules/index.md
delete mode 100644 docs/reference/modules/performance.md
delete mode 100644 docs/reference/modules/remote_config.md
delete mode 100644 docs/reference/modules/sdk.md
delete mode 100644 docs/reference/modules/storage.md
delete mode 100644 docs/reference/modules/useObservable.md
rename example/{styles.pcss => index.css} (64%)
create mode 100644 example/package-lock.json
rename example/{postcss.config.js => postcss.config.cjs} (98%)
create mode 100644 example/tailwind.config.cjs
delete mode 100644 example/tailwind.config.js
create mode 100644 example/tsconfig.node.json
create mode 100644 example/vite.config.js
delete mode 100644 example/yarn.lock
delete mode 100644 jest.config.js
delete mode 100644 test/custom-jest-environment.js
create mode 100644 vite.config.ts
delete mode 100644 yarn.lock
diff --git a/.eslintrc.json b/.eslintrc.json
new file mode 100644
index 00000000..ed012a26
--- /dev/null
+++ b/.eslintrc.json
@@ -0,0 +1,36 @@
+{
+ "env": {
+ "browser": true,
+ "es2021": true
+ },
+ "extends": [
+ "eslint:recommended",
+ "plugin:react/recommended",
+ "plugin:react/jsx-runtime",
+ "plugin:react-hooks/recommended",
+ "plugin:@typescript-eslint/recommended"
+ ],
+ "parser": "@typescript-eslint/parser",
+ "parserOptions": {
+ "ecmaFeatures": {
+ "jsx": true
+ },
+ "ecmaVersion": "latest",
+ "sourceType": "module"
+ },
+ "plugins": [
+ "react",
+ "@typescript-eslint",
+ "no-only-tests"
+ ],
+ "rules": {
+ "no-only-tests/no-only-tests": "error",
+ "@typescript-eslint/no-explicit-any": "warn",
+ "@typescript-eslint/no-inferrable-types": "warn",
+ "@typescript-eslint/ban-types": "warn",
+ "no-prototype-builtins": "warn",
+ "prefer-const": "warn",
+ "react/no-unescaped-entities": "warn",
+ "@typescript-eslint/no-empty-function": "warn"
+ }
+}
diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md
index e474ca0a..3434ad3f 100644
--- a/.github/CONTRIBUTING.md
+++ b/.github/CONTRIBUTING.md
@@ -71,18 +71,18 @@ set up.
1. [Clone](https://help.github.com/en/github/creating-cloning-and-archiving-repositories/cloning-a-repository)
this repository (or a
[fork](https://help.github.com/en/github/getting-started-with-github/fork-a-repo#propose-changes-to-someone-elses-project))
-1. At the project root, install all modules by running `yarn install`.
-1. Start a dev build of reactfire by running `yarn start`. ReactFire will recompile on every file change.
+1. At the project root, install all modules by running `npm install`.
+1. Start a dev build of reactfire by running `npm run start`. ReactFire will recompile on every file change.
### Testing
-1. run `yarn test` from the repository root. Make sure you've rebuilt your changes (usually by keeping `yarn start` running in a separate tab).
+1. run `npm run test` from the repository root. Make sure you've rebuilt your changes (usually by keeping `npm run start` running in a separate tab).
### Before submitting a PR
-1. run `yarn build` to confirm that the source builds
-2. run `yarn test` to confirm that tests pass
-3. run `yarn lint` to confirm that code meets our style guide
- > If the lint check fails, run `yarn lint --fix` to automatically fix any issues.
-5. run `yarn docs` to rebuild the reference docs
- > If you've forked the repo, run `yarn docs:fork` instead. This will ensure the reference docs link to the firebaseextended/reactfire repository.
+1. run `npm run build` to confirm that the source builds
+2. run `npm run test` to confirm that tests pass
+3. run `npm run lint` to confirm that code meets our style guide
+ > If the lint check fails, run `npm run lint --fix` to automatically fix any issues.
+5. run `npm run docs` to rebuild the reference docs
+ > If you've forked the repo, run `npm run docs:fork` instead. This will ensure the reference docs link to the firebaseextended/reactfire repository.
diff --git a/.github/workflows/docs.yaml b/.github/workflows/docs.yaml
index 5522c866..7827fd88 100644
--- a/.github/workflows/docs.yaml
+++ b/.github/workflows/docs.yaml
@@ -11,32 +11,14 @@ jobs:
- name: Checkout
uses: actions/checkout@v2
- name: Setup node
- uses: actions/setup-node@v2-beta
+ uses: actions/setup-node@v3
with:
node-version: '14'
- - name: node_modules cache
- id: node_modules_cache
- uses: actions/cache@v2
- with:
- path: ./node_modules
- key: ${{ runner.os }}-14-node_modules-${{ hashFiles('**/yarn.lock') }}
- restore-keys: |
- ${{ runner.os }}-14-node_modules-
- - name: Yarn offline cache
- if: steps.node_modules_cache.outputs.cache-hit != 'true'
- uses: actions/cache@v2
- with:
- path: ~/.npm-packages-offline-cache
- key: yarn-offline-${{ hashFiles('**/yarn.lock') }}
- restore-keys: yarn-offline
+ cache: 'npm'
- name: Install deps
- if: steps.node_modules_cache.outputs.cache-hit != 'true'
- run: |
- yarn config set yarn-offline-mirror ~/.npm-packages-offline-cache
- yarn config set yarn-offline-mirror-pruning true
- yarn install --frozen-lockfile --prefer-offline
+ run: npm ci
- name: Generate reference docs
- run: yarn docs
+ run: npm run docs
- name: Check for diff
run: git diff --exit-code -- 'docs/reference***.md'
diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml
index d7866b0d..ffebbe6f 100644
--- a/.github/workflows/test.yaml
+++ b/.github/workflows/test.yaml
@@ -21,32 +21,14 @@ jobs:
- name: Checkout
uses: actions/checkout@v2
- name: Setup node
- uses: actions/setup-node@v2-beta
+ uses: actions/setup-node@v3
with:
node-version: '14'
- - name: node_modules cache
- id: node_modules_cache
- uses: actions/cache@v2
- with:
- path: ./node_modules
- key: ${{ runner.os }}-14-node_modules-${{ hashFiles('**/yarn.lock') }}
- restore-keys: |
- ${{ runner.os }}-14-node_modules-
- - name: Yarn offline cache
- if: steps.node_modules_cache.outputs.cache-hit != 'true'
- uses: actions/cache@v2
- with:
- path: ~/.npm-packages-offline-cache
- key: yarn-offline-${{ hashFiles('**/yarn.lock') }}
- restore-keys: yarn-offline
+ cache: 'npm'
- name: Install deps
- if: steps.node_modules_cache.outputs.cache-hit != 'true'
- run: |
- yarn config set yarn-offline-mirror ~/.npm-packages-offline-cache
- yarn config set yarn-offline-mirror-pruning true
- yarn install --frozen-lockfile --prefer-offline
+ run: npm ci
- name: Build
- id: yarn-pack-dir
+ id: pack-dir
run: ./build.sh
- name: 'Upload Artifact'
uses: actions/upload-artifact@v2
@@ -62,37 +44,20 @@ jobs:
needs: build
strategy:
matrix:
- node: ["12", "14"]
+ node: ["14", "16"]
fail-fast: false
name: Test Node.js ${{ matrix.node }} (Ubuntu)
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Setup node
- uses: actions/setup-node@v2-beta
+ uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node }}
check-latest: true
- - name: node_modules cache
- id: node_modules_cache
- uses: actions/cache@v2
- with:
- path: ./node_modules
- key: ${{ runner.os }}-${{ matrix.node }}-node_modules-${{ hashFiles('**/yarn.lock') }}
- restore-keys: |
- ${{ runner.os }}-${{ matrix.node }}-node_modules-
- - name: Yarn offline cache
- if: steps.node_modules_cache.outputs.cache-hit != 'true'
- uses: actions/cache@v2
- with:
- path: ~/.npm-packages-offline-cache
- key: yarn-offline-${{ hashFiles('**/yarn.lock') }}
- restore-keys: yarn-offline
+ cache: 'npm'
- name: Install deps
- if: steps.node_modules_cache.outputs.cache-hit != 'true'
- run: |
- yarn config set yarn-offline-mirror ~/.npm-packages-offline-cache
- yarn install --frozen-lockfile --prefer-offline
+ run: npm ci
- name: Install deps for functions
run: npm install
working-directory: ./functions
@@ -108,7 +73,7 @@ jobs:
chmod +x reactfire-${{ github.run_id }}/unpack.sh
./reactfire-${{ github.run_id }}/unpack.sh
- name: Run tests
- run: yarn test
+ run: npm run test
publish:
runs-on: ubuntu-latest
name: Publish (NPM)
@@ -116,7 +81,7 @@ jobs:
if: ${{ github.ref == 'refs/heads/main' || github.event_name == 'release' }}
steps:
- name: Setup node
- uses: actions/setup-node@v2-beta
+ uses: actions/setup-node@v3
with:
node-version: '14'
registry-url: 'https://registry.npmjs.org'
diff --git a/.gitignore b/.gitignore
index 17db160c..df34806e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -27,3 +27,4 @@ unpack.sh
example/.parcel-cache/
.firebaserc
+stats.html
diff --git a/babel.config.js b/babel.config.js
deleted file mode 100644
index 79932ba7..00000000
--- a/babel.config.js
+++ /dev/null
@@ -1,20 +0,0 @@
-const { version: reactFireVersion } = require('./package.json');
-
-module.exports = {
- plugins: [
- [
- 'minify-replace',
- {
- replacements: [
- {
- identifierName: '__REACTFIRE_VERSION__',
- replacement: {
- type: 'stringLiteral',
- value: reactFireVersion + ''
- }
- }
- ]
- }
- ]
- ]
-};
diff --git a/build.sh b/build.sh
index 77654649..6782c0c6 100755
--- a/build.sh
+++ b/build.sh
@@ -15,7 +15,7 @@ else
fi;
npm --no-git-tag-version --allow-same-version -f version $OVERRIDE_VERSION
-yarn build
+npm run build
TARBALL=$(npm pack . | tail -n 1)
mv $TARBALL reactfire.tgz
diff --git a/docs/quickstart.md b/docs/quickstart.md
index ed4cac15..473405b8 100644
--- a/docs/quickstart.md
+++ b/docs/quickstart.md
@@ -172,11 +172,11 @@ npm install --save firebase reactfire
1. Run your app.
```bash
- yarn start
+ npm run start
# or
- npm run start
+ yarn start
```
1. Edit the value of `yummy` in the _Database_ tab in the [Firebase console](https://console.firebase.google.com) and watch it update in real time in your app! 🔥🔥🔥
diff --git a/docs/reference/README.md b/docs/reference/README.md
index ea501d1a..850ef39e 100644
--- a/docs/reference/README.md
+++ b/docs/reference/README.md
@@ -4,17 +4,1638 @@ ReactFire reference docs
## Table of contents
-### Modules
-
-- [SuspenseSubject](modules/SuspenseSubject.md)
-- [auth](modules/auth.md)
-- [database](modules/database.md)
-- [firebaseApp](modules/firebaseApp.md)
-- [firestore](modules/firestore.md)
-- [functions](modules/functions.md)
-- [index](modules/index.md)
-- [performance](modules/performance.md)
-- [remote-config](modules/remote_config.md)
-- [sdk](modules/sdk.md)
-- [storage](modules/storage.md)
-- [useObservable](modules/useObservable.md)
+### Classes
+
+- [ReactFireError](classes/ReactFireError.md)
+
+### Interfaces
+
+- [AuthCheckProps](interfaces/AuthCheckProps.md)
+- [ClaimCheckErrors](interfaces/ClaimCheckErrors.md)
+- [ClaimsCheckProps](interfaces/ClaimsCheckProps.md)
+- [ClaimsValidator](interfaces/ClaimsValidator.md)
+- [ObservableStatus](interfaces/ObservableStatus.md)
+- [ReactFireOptions](interfaces/ReactFireOptions.md)
+- [SignInCheckOptionsBasic](interfaces/SignInCheckOptionsBasic.md)
+- [SignInCheckOptionsClaimsObject](interfaces/SignInCheckOptionsClaimsObject.md)
+- [SignInCheckOptionsClaimsValidator](interfaces/SignInCheckOptionsClaimsValidator.md)
+- [SuspensePerfProps](interfaces/SuspensePerfProps.md)
+
+### Type Aliases
+
+- [ReactFireGlobals](README.md#reactfireglobals)
+- [SigninCheckResult](README.md#signincheckresult)
+
+### Variables
+
+- [AnalyticsSdkContext](README.md#analyticssdkcontext)
+- [AppCheckSdkContext](README.md#appchecksdkcontext)
+- [AuthSdkContext](README.md#authsdkcontext)
+- [DatabaseSdkContext](README.md#databasesdkcontext)
+- [FirestoreSdkContext](README.md#firestoresdkcontext)
+- [FunctionsSdkContext](README.md#functionssdkcontext)
+- [PerformanceSdkContext](README.md#performancesdkcontext)
+- [RemoteConfigSdkContext](README.md#remoteconfigsdkcontext)
+- [StorageSdkContext](README.md#storagesdkcontext)
+- [version](README.md#version)
+
+### Functions
+
+- [AnalyticsProvider](README.md#analyticsprovider)
+- [AppCheckProvider](README.md#appcheckprovider)
+- [AuthCheck](README.md#authcheck)
+- [AuthProvider](README.md#authprovider)
+- [ClaimsCheck](README.md#claimscheck)
+- [DatabaseProvider](README.md#databaseprovider)
+- [FirebaseAppProvider](README.md#firebaseappprovider)
+- [FirestoreProvider](README.md#firestoreprovider)
+- [FunctionsProvider](README.md#functionsprovider)
+- [PerformanceProvider](README.md#performanceprovider)
+- [RemoteConfigProvider](README.md#remoteconfigprovider)
+- [StorageImage](README.md#storageimage)
+- [StorageProvider](README.md#storageprovider)
+- [SuspenseWithPerf](README.md#suspensewithperf)
+- [checkIdField](README.md#checkidfield)
+- [checkOptions](README.md#checkoptions)
+- [checkinitialData](README.md#checkinitialdata)
+- [preloadFirestoreDoc](README.md#preloadfirestoredoc)
+- [preloadObservable](README.md#preloadobservable)
+- [preloadUser](README.md#preloaduser)
+- [useAnalytics](README.md#useanalytics)
+- [useAppCheck](README.md#useappcheck)
+- [useAuth](README.md#useauth)
+- [useCallableFunctionResponse](README.md#usecallablefunctionresponse)
+- [useDatabase](README.md#usedatabase)
+- [useDatabaseList](README.md#usedatabaselist)
+- [useDatabaseListData](README.md#usedatabaselistdata)
+- [useDatabaseObject](README.md#usedatabaseobject)
+- [useDatabaseObjectData](README.md#usedatabaseobjectdata)
+- [useFirebaseApp](README.md#usefirebaseapp)
+- [useFirestore](README.md#usefirestore)
+- [useFirestoreCollection](README.md#usefirestorecollection)
+- [useFirestoreCollectionData](README.md#usefirestorecollectiondata)
+- [useFirestoreDoc](README.md#usefirestoredoc)
+- [useFirestoreDocData](README.md#usefirestoredocdata)
+- [useFirestoreDocDataOnce](README.md#usefirestoredocdataonce)
+- [useFirestoreDocOnce](README.md#usefirestoredoconce)
+- [useFunctions](README.md#usefunctions)
+- [useIdTokenResult](README.md#useidtokenresult)
+- [useInitAnalytics](README.md#useinitanalytics)
+- [useInitAppCheck](README.md#useinitappcheck)
+- [useInitAuth](README.md#useinitauth)
+- [useInitDatabase](README.md#useinitdatabase)
+- [useInitFirestore](README.md#useinitfirestore)
+- [useInitFunctions](README.md#useinitfunctions)
+- [useInitPerformance](README.md#useinitperformance)
+- [useInitRemoteConfig](README.md#useinitremoteconfig)
+- [useInitStorage](README.md#useinitstorage)
+- [useIsSuspenseEnabled](README.md#useissuspenseenabled)
+- [useObservable](README.md#useobservable)
+- [usePerformance](README.md#useperformance)
+- [useRemoteConfig](README.md#useremoteconfig)
+- [useRemoteConfigAll](README.md#useremoteconfigall)
+- [useRemoteConfigBoolean](README.md#useremoteconfigboolean)
+- [useRemoteConfigNumber](README.md#useremoteconfignumber)
+- [useRemoteConfigString](README.md#useremoteconfigstring)
+- [useRemoteConfigValue](README.md#useremoteconfigvalue)
+- [useSigninCheck](README.md#usesignincheck)
+- [useStorage](README.md#usestorage)
+- [useStorageDownloadURL](README.md#usestoragedownloadurl)
+- [useStorageTask](README.md#usestoragetask)
+- [useSuspenseEnabledFromConfigAndContext](README.md#usesuspenseenabledfromconfigandcontext)
+- [useUser](README.md#useuser)
+
+## Type Aliases
+
+### ReactFireGlobals
+
+Ƭ **ReactFireGlobals**: `Object`
+
+#### Type declaration
+
+| Name | Type |
+| :------ | :------ |
+| `_reactFireDatabaseCachedQueries` | `DatabaseQuery`[] |
+| `_reactFireFirestoreQueryCache` | `FirestoreQuery`[] |
+| `_reactFirePreloadedObservables` | `Map`<`string`, `SuspenseSubject`<`any`\>\> |
+
+#### Defined in
+
+[src/index.ts:6](https://github.com/FirebaseExtended/reactfire/blob/main/src/index.ts#L6)
+
+___
+
+### SigninCheckResult
+
+Ƭ **SigninCheckResult**: { `errors`: {} ; `hasRequiredClaims`: ``false`` ; `signedIn`: ``false`` ; `user`: ``null`` } \| { `errors`: [`ClaimCheckErrors`](interfaces/ClaimCheckErrors.md) ; `hasRequiredClaims`: `boolean` ; `signedIn`: ``true`` ; `user`: `User` }
+
+#### Defined in
+
+[src/auth.tsx:66](https://github.com/FirebaseExtended/reactfire/blob/main/src/auth.tsx#L66)
+
+## Variables
+
+### AnalyticsSdkContext
+
+• `Const` **AnalyticsSdkContext**: `Context`<`undefined` \| `Analytics`\>
+
+#### Defined in
+
+[src/sdk.tsx:20](https://github.com/FirebaseExtended/reactfire/blob/main/src/sdk.tsx#L20)
+
+___
+
+### AppCheckSdkContext
+
+• `Const` **AppCheckSdkContext**: `Context`<`undefined` \| `AppCheck`\>
+
+#### Defined in
+
+[src/sdk.tsx:18](https://github.com/FirebaseExtended/reactfire/blob/main/src/sdk.tsx#L18)
+
+___
+
+### AuthSdkContext
+
+• `Const` **AuthSdkContext**: `Context`<`undefined` \| `Auth`\>
+
+#### Defined in
+
+[src/sdk.tsx:19](https://github.com/FirebaseExtended/reactfire/blob/main/src/sdk.tsx#L19)
+
+___
+
+### DatabaseSdkContext
+
+• `Const` **DatabaseSdkContext**: `Context`<`undefined` \| `Database`\>
+
+#### Defined in
+
+[src/sdk.tsx:21](https://github.com/FirebaseExtended/reactfire/blob/main/src/sdk.tsx#L21)
+
+___
+
+### FirestoreSdkContext
+
+• `Const` **FirestoreSdkContext**: `Context`<`undefined` \| `Firestore`\>
+
+#### Defined in
+
+[src/sdk.tsx:22](https://github.com/FirebaseExtended/reactfire/blob/main/src/sdk.tsx#L22)
+
+___
+
+### FunctionsSdkContext
+
+• `Const` **FunctionsSdkContext**: `Context`<`undefined` \| `Functions`\>
+
+#### Defined in
+
+[src/sdk.tsx:23](https://github.com/FirebaseExtended/reactfire/blob/main/src/sdk.tsx#L23)
+
+___
+
+### PerformanceSdkContext
+
+• `Const` **PerformanceSdkContext**: `Context`<`undefined` \| `FirebasePerformance`\>
+
+#### Defined in
+
+[src/sdk.tsx:25](https://github.com/FirebaseExtended/reactfire/blob/main/src/sdk.tsx#L25)
+
+___
+
+### RemoteConfigSdkContext
+
+• `Const` **RemoteConfigSdkContext**: `Context`<`undefined` \| `RemoteConfig`\>
+
+#### Defined in
+
+[src/sdk.tsx:26](https://github.com/FirebaseExtended/reactfire/blob/main/src/sdk.tsx#L26)
+
+___
+
+### StorageSdkContext
+
+• `Const` **StorageSdkContext**: `Context`<`undefined` \| `FirebaseStorage`\>
+
+#### Defined in
+
+[src/sdk.tsx:24](https://github.com/FirebaseExtended/reactfire/blob/main/src/sdk.tsx#L24)
+
+___
+
+### version
+
+• `Const` **version**: `string`
+
+#### Defined in
+
+[src/firebaseApp.tsx:20](https://github.com/FirebaseExtended/reactfire/blob/main/src/firebaseApp.tsx#L20)
+
+## Functions
+
+### AnalyticsProvider
+
+â–¸ **AnalyticsProvider**(`props`): `Element`
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `props` | `PropsWithChildren`<{ `sdk`: `Analytics` }\> |
+
+#### Returns
+
+`Element`
+
+#### Defined in
+
+[src/sdk.tsx:31](https://github.com/FirebaseExtended/reactfire/blob/main/src/sdk.tsx#L31)
+
+___
+
+### AppCheckProvider
+
+â–¸ **AppCheckProvider**(`props`): `Element`
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `props` | `PropsWithChildren`<{ `sdk`: `AppCheck` }\> |
+
+#### Returns
+
+`Element`
+
+#### Defined in
+
+[src/sdk.tsx:31](https://github.com/FirebaseExtended/reactfire/blob/main/src/sdk.tsx#L31)
+
+___
+
+### AuthCheck
+
+â–¸ **AuthCheck**(`__namedParameters`): `JSX.Element`
+
+**`Deprecated`**
+
+Use `useSignInCheck` instead
+
+Conditionally render children based on signed-in status and [custom claims](https://firebase.google.com/docs/auth/admin/custom-claims).
+
+Meant for Concurrent mode only (``). [More detail](https://github.com/FirebaseExtended/reactfire/issues/325#issuecomment-827654376).
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `__namedParameters` | [`AuthCheckProps`](interfaces/AuthCheckProps.md) |
+
+#### Returns
+
+`JSX.Element`
+
+#### Defined in
+
+[src/auth.tsx:247](https://github.com/FirebaseExtended/reactfire/blob/main/src/auth.tsx#L247)
+
+___
+
+### AuthProvider
+
+â–¸ **AuthProvider**(`props`): `Element`
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `props` | `PropsWithChildren`<{ `sdk`: `Auth` }\> |
+
+#### Returns
+
+`Element`
+
+#### Defined in
+
+[src/sdk.tsx:31](https://github.com/FirebaseExtended/reactfire/blob/main/src/sdk.tsx#L31)
+
+___
+
+### ClaimsCheck
+
+â–¸ **ClaimsCheck**(`__namedParameters`): `Element`
+
+**`Deprecated`**
+
+Use `useSignInCheck` instead
+
+Conditionally render children based on [custom claims](https://firebase.google.com/docs/auth/admin/custom-claims).
+
+Meant for Concurrent mode only (``). [More detail](https://github.com/FirebaseExtended/reactfire/issues/325#issuecomment-827654376).
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `__namedParameters` | [`ClaimsCheckProps`](interfaces/ClaimsCheckProps.md) |
+
+#### Returns
+
+`Element`
+
+#### Defined in
+
+[src/auth.tsx:210](https://github.com/FirebaseExtended/reactfire/blob/main/src/auth.tsx#L210)
+
+___
+
+### DatabaseProvider
+
+â–¸ **DatabaseProvider**(`props`): `Element`
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `props` | `PropsWithChildren`<{ `sdk`: `Database` }\> |
+
+#### Returns
+
+`Element`
+
+#### Defined in
+
+[src/sdk.tsx:31](https://github.com/FirebaseExtended/reactfire/blob/main/src/sdk.tsx#L31)
+
+___
+
+### FirebaseAppProvider
+
+â–¸ **FirebaseAppProvider**(`props`): `Element`
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `props` | `PropsWithChildren`<`FirebaseAppProviderProps`\> |
+
+#### Returns
+
+`Element`
+
+#### Defined in
+
+[src/firebaseApp.tsx:24](https://github.com/FirebaseExtended/reactfire/blob/main/src/firebaseApp.tsx#L24)
+
+___
+
+### FirestoreProvider
+
+â–¸ **FirestoreProvider**(`props`): `Element`
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `props` | `PropsWithChildren`<{ `sdk`: `Firestore` }\> |
+
+#### Returns
+
+`Element`
+
+#### Defined in
+
+[src/sdk.tsx:31](https://github.com/FirebaseExtended/reactfire/blob/main/src/sdk.tsx#L31)
+
+___
+
+### FunctionsProvider
+
+â–¸ **FunctionsProvider**(`props`): `Element`
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `props` | `PropsWithChildren`<{ `sdk`: `Functions` }\> |
+
+#### Returns
+
+`Element`
+
+#### Defined in
+
+[src/sdk.tsx:31](https://github.com/FirebaseExtended/reactfire/blob/main/src/sdk.tsx#L31)
+
+___
+
+### PerformanceProvider
+
+â–¸ **PerformanceProvider**(`props`): `Element`
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `props` | `PropsWithChildren`<{ `sdk`: `FirebasePerformance` }\> |
+
+#### Returns
+
+`Element`
+
+#### Defined in
+
+[src/sdk.tsx:31](https://github.com/FirebaseExtended/reactfire/blob/main/src/sdk.tsx#L31)
+
+___
+
+### RemoteConfigProvider
+
+â–¸ **RemoteConfigProvider**(`props`): `Element`
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `props` | `PropsWithChildren`<{ `sdk`: `RemoteConfig` }\> |
+
+#### Returns
+
+`Element`
+
+#### Defined in
+
+[src/sdk.tsx:31](https://github.com/FirebaseExtended/reactfire/blob/main/src/sdk.tsx#L31)
+
+___
+
+### StorageImage
+
+â–¸ **StorageImage**(`props`): `Element`
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `props` | `StorageImageProps` & `ClassAttributes`<`HTMLImageElement`\> & `ImgHTMLAttributes`<`HTMLImageElement`\> |
+
+#### Returns
+
+`Element`
+
+#### Defined in
+
+[src/storage.tsx:78](https://github.com/FirebaseExtended/reactfire/blob/main/src/storage.tsx#L78)
+
+___
+
+### StorageProvider
+
+â–¸ **StorageProvider**(`props`): `Element`
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `props` | `PropsWithChildren`<{ `sdk`: `FirebaseStorage` }\> |
+
+#### Returns
+
+`Element`
+
+#### Defined in
+
+[src/sdk.tsx:31](https://github.com/FirebaseExtended/reactfire/blob/main/src/sdk.tsx#L31)
+
+___
+
+### SuspenseWithPerf
+
+â–¸ **SuspenseWithPerf**(`__namedParameters`): `JSX.Element`
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `__namedParameters` | [`SuspensePerfProps`](interfaces/SuspensePerfProps.md) |
+
+#### Returns
+
+`JSX.Element`
+
+#### Defined in
+
+[src/performance.tsx:9](https://github.com/FirebaseExtended/reactfire/blob/main/src/performance.tsx#L9)
+
+___
+
+### checkIdField
+
+â–¸ **checkIdField**(`options`): `any`
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `options` | [`ReactFireOptions`](interfaces/ReactFireOptions.md)<`unknown`\> |
+
+#### Returns
+
+`any`
+
+#### Defined in
+
+[src/index.ts:47](https://github.com/FirebaseExtended/reactfire/blob/main/src/index.ts#L47)
+
+___
+
+### checkOptions
+
+â–¸ **checkOptions**(`options`, `field`): `any`
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `options` | [`ReactFireOptions`](interfaces/ReactFireOptions.md)<`unknown`\> |
+| `field` | `string` |
+
+#### Returns
+
+`any`
+
+#### Defined in
+
+[src/index.ts:34](https://github.com/FirebaseExtended/reactfire/blob/main/src/index.ts#L34)
+
+___
+
+### checkinitialData
+
+â–¸ **checkinitialData**(`options`): `any`
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `options` | [`ReactFireOptions`](interfaces/ReactFireOptions.md)<`unknown`\> |
+
+#### Returns
+
+`any`
+
+#### Defined in
+
+[src/index.ts:43](https://github.com/FirebaseExtended/reactfire/blob/main/src/index.ts#L43)
+
+___
+
+### preloadFirestoreDoc
+
+â–¸ **preloadFirestoreDoc**(`refProvider`): `Promise`<`SuspenseSubject`<`DocumentSnapshot`<`DocumentData`\>\>\>
+
+Preload a subscription to a Firestore document reference.
+
+Use this to warm up `useFirestoreDoc` for a specific document
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `refProvider` | () => `Promise`<`DocumentReference`<`DocumentData`\>\> |
+
+#### Returns
+
+`Promise`<`SuspenseSubject`<`DocumentSnapshot`<`DocumentData`\>\>\>
+
+#### Defined in
+
+[src/firestore.tsx:28](https://github.com/FirebaseExtended/reactfire/blob/main/src/firestore.tsx#L28)
+
+___
+
+### preloadObservable
+
+â–¸ **preloadObservable**<`T`\>(`source`, `id`): `SuspenseSubject`<`T`\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `T` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `source` | `Observable`<`T`\> |
+| `id` | `string` |
+
+#### Returns
+
+`SuspenseSubject`<`T`\>
+
+#### Defined in
+
+[src/useObservable.ts:19](https://github.com/FirebaseExtended/reactfire/blob/main/src/useObservable.ts#L19)
+
+___
+
+### preloadUser
+
+â–¸ **preloadUser**(`authResolver`): `Promise`<`undefined` \| ``null`` \| `User`\>
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `authResolver` | () => `Promise`<`Auth`\> |
+
+#### Returns
+
+`Promise`<`undefined` \| ``null`` \| `User`\>
+
+#### Defined in
+
+[src/auth.tsx:11](https://github.com/FirebaseExtended/reactfire/blob/main/src/auth.tsx#L11)
+
+___
+
+### useAnalytics
+
+â–¸ **useAnalytics**(): `Analytics`
+
+#### Returns
+
+`Analytics`
+
+#### Defined in
+
+[src/sdk.tsx:84](https://github.com/FirebaseExtended/reactfire/blob/main/src/sdk.tsx#L84)
+
+___
+
+### useAppCheck
+
+â–¸ **useAppCheck**(): `AppCheck`
+
+#### Returns
+
+`AppCheck`
+
+#### Defined in
+
+[src/sdk.tsx:82](https://github.com/FirebaseExtended/reactfire/blob/main/src/sdk.tsx#L82)
+
+___
+
+### useAuth
+
+â–¸ **useAuth**(): `Auth`
+
+#### Returns
+
+`Auth`
+
+#### Defined in
+
+[src/sdk.tsx:83](https://github.com/FirebaseExtended/reactfire/blob/main/src/sdk.tsx#L83)
+
+___
+
+### useCallableFunctionResponse
+
+â–¸ **useCallableFunctionResponse**<`RequestData`, `ResponseData`\>(`functionName`, `options?`): [`ObservableStatus`](interfaces/ObservableStatus.md)<`ResponseData`\>
+
+Calls a callable function.
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `RequestData` |
+| `ResponseData` |
+
+#### Parameters
+
+| Name | Type | Description |
+| :------ | :------ | :------ |
+| `functionName` | `string` | The name of the function to call |
+| `options?` | [`ReactFireOptions`](interfaces/ReactFireOptions.md)<`ResponseData`\> & { `data?`: `RequestData` ; `httpsCallableOptions?`: `HttpsCallableOptions` } | |
+
+#### Returns
+
+[`ObservableStatus`](interfaces/ObservableStatus.md)<`ResponseData`\>
+
+#### Defined in
+
+[src/functions.tsx:13](https://github.com/FirebaseExtended/reactfire/blob/main/src/functions.tsx#L13)
+
+___
+
+### useDatabase
+
+â–¸ **useDatabase**(): `Database`
+
+#### Returns
+
+`Database`
+
+#### Defined in
+
+[src/sdk.tsx:85](https://github.com/FirebaseExtended/reactfire/blob/main/src/sdk.tsx#L85)
+
+___
+
+### useDatabaseList
+
+â–¸ **useDatabaseList**<`T`\>(`ref`, `options?`): [`ObservableStatus`](interfaces/ObservableStatus.md)<`QueryChange`[] \| `T`[]\>
+
+Subscribe to a Realtime Database list
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `T` | { `[key: string]`: `unknown`; } |
+
+#### Parameters
+
+| Name | Type | Description |
+| :------ | :------ | :------ |
+| `ref` | `Query` \| `DatabaseReference` | Reference to the DB List you want to listen to |
+| `options?` | [`ReactFireOptions`](interfaces/ReactFireOptions.md)<`T`[]\> | |
+
+#### Returns
+
+[`ObservableStatus`](interfaces/ObservableStatus.md)<`QueryChange`[] \| `T`[]\>
+
+#### Defined in
+
+[src/database.tsx:48](https://github.com/FirebaseExtended/reactfire/blob/main/src/database.tsx#L48)
+
+___
+
+### useDatabaseListData
+
+â–¸ **useDatabaseListData**<`T`\>(`ref`, `options?`): [`ObservableStatus`](interfaces/ObservableStatus.md)<`T`[] \| ``null``\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `T` | { `[key: string]`: `unknown`; } |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `ref` | `Query` \| `DatabaseReference` |
+| `options?` | [`ReactFireOptions`](interfaces/ReactFireOptions.md)<`T`[]\> |
+
+#### Returns
+
+[`ObservableStatus`](interfaces/ObservableStatus.md)<`T`[] \| ``null``\>
+
+#### Defined in
+
+[src/database.tsx:58](https://github.com/FirebaseExtended/reactfire/blob/main/src/database.tsx#L58)
+
+___
+
+### useDatabaseObject
+
+â–¸ **useDatabaseObject**<`T`\>(`ref`, `options?`): [`ObservableStatus`](interfaces/ObservableStatus.md)<`QueryChange` \| `T`\>
+
+Subscribe to a Realtime Database object
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `T` | `unknown` |
+
+#### Parameters
+
+| Name | Type | Description |
+| :------ | :------ | :------ |
+| `ref` | `DatabaseReference` | Reference to the DB object you want to listen to |
+| `options?` | [`ReactFireOptions`](interfaces/ReactFireOptions.md)<`T`\> | |
+
+#### Returns
+
+[`ObservableStatus`](interfaces/ObservableStatus.md)<`QueryChange` \| `T`\>
+
+#### Defined in
+
+[src/database.tsx:27](https://github.com/FirebaseExtended/reactfire/blob/main/src/database.tsx#L27)
+
+___
+
+### useDatabaseObjectData
+
+â–¸ **useDatabaseObjectData**<`T`\>(`ref`, `options?`): [`ObservableStatus`](interfaces/ObservableStatus.md)<`T`\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `T` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `ref` | `DatabaseReference` |
+| `options?` | [`ReactFireOptions`](interfaces/ReactFireOptions.md)<`T`\> |
+
+#### Returns
+
+[`ObservableStatus`](interfaces/ObservableStatus.md)<`T`\>
+
+#### Defined in
+
+[src/database.tsx:34](https://github.com/FirebaseExtended/reactfire/blob/main/src/database.tsx#L34)
+
+___
+
+### useFirebaseApp
+
+â–¸ **useFirebaseApp**(): `FirebaseApp`
+
+#### Returns
+
+`FirebaseApp`
+
+#### Defined in
+
+[src/firebaseApp.tsx:78](https://github.com/FirebaseExtended/reactfire/blob/main/src/firebaseApp.tsx#L78)
+
+___
+
+### useFirestore
+
+â–¸ **useFirestore**(): `Firestore`
+
+#### Returns
+
+`Firestore`
+
+#### Defined in
+
+[src/sdk.tsx:86](https://github.com/FirebaseExtended/reactfire/blob/main/src/sdk.tsx#L86)
+
+___
+
+### useFirestoreCollection
+
+â–¸ **useFirestoreCollection**<`T`\>(`query`, `options?`): [`ObservableStatus`](interfaces/ObservableStatus.md)<`QuerySnapshot`<`T`\>\>
+
+Subscribe to a Firestore collection
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `T` | `DocumentData` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `query` | `Query`<`T`\> |
+| `options?` | [`ReactFireOptions`](interfaces/ReactFireOptions.md)<`T`[]\> |
+
+#### Returns
+
+[`ObservableStatus`](interfaces/ObservableStatus.md)<`QuerySnapshot`<`T`\>\>
+
+#### Defined in
+
+[src/firestore.tsx:86](https://github.com/FirebaseExtended/reactfire/blob/main/src/firestore.tsx#L86)
+
+___
+
+### useFirestoreCollectionData
+
+â–¸ **useFirestoreCollectionData**<`T`\>(`query`, `options?`): [`ObservableStatus`](interfaces/ObservableStatus.md)<`T`[]\>
+
+Subscribe to a Firestore collection and unwrap the snapshot into an array.
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `T` | `DocumentData` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `query` | `Query`<`T`\> |
+| `options?` | [`ReactFireOptions`](interfaces/ReactFireOptions.md)<`T`[]\> |
+
+#### Returns
+
+[`ObservableStatus`](interfaces/ObservableStatus.md)<`T`[]\>
+
+#### Defined in
+
+[src/firestore.tsx:96](https://github.com/FirebaseExtended/reactfire/blob/main/src/firestore.tsx#L96)
+
+___
+
+### useFirestoreDoc
+
+â–¸ **useFirestoreDoc**<`T`\>(`ref`, `options?`): [`ObservableStatus`](interfaces/ObservableStatus.md)<`DocumentSnapshot`<`T`\>\>
+
+Suscribe to Firestore Document changes
+
+You can preload data for this hook by calling `preloadFirestoreDoc`
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `T` | `DocumentData` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `ref` | `DocumentReference`<`T`\> |
+| `options?` | [`ReactFireOptions`](interfaces/ReactFireOptions.md)<`T`\> |
+
+#### Returns
+
+[`ObservableStatus`](interfaces/ObservableStatus.md)<`DocumentSnapshot`<`T`\>\>
+
+#### Defined in
+
+[src/firestore.tsx:42](https://github.com/FirebaseExtended/reactfire/blob/main/src/firestore.tsx#L42)
+
+___
+
+### useFirestoreDocData
+
+â–¸ **useFirestoreDocData**<`T`\>(`ref`, `options?`): [`ObservableStatus`](interfaces/ObservableStatus.md)<`T`\>
+
+Suscribe to Firestore Document changes and unwrap the document into a plain object
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `T` | `unknown` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `ref` | `DocumentReference`<`T`\> |
+| `options?` | [`ReactFireOptions`](interfaces/ReactFireOptions.md)<`T`\> |
+
+#### Returns
+
+[`ObservableStatus`](interfaces/ObservableStatus.md)<`T`\>
+
+#### Defined in
+
+[src/firestore.tsx:62](https://github.com/FirebaseExtended/reactfire/blob/main/src/firestore.tsx#L62)
+
+___
+
+### useFirestoreDocDataOnce
+
+â–¸ **useFirestoreDocDataOnce**<`T`\>(`ref`, `options?`): [`ObservableStatus`](interfaces/ObservableStatus.md)<`T`\>
+
+Get a Firestore document, unwrap the document into a plain object, and don't subscribe to changes
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `T` | `unknown` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `ref` | `DocumentReference`<`T`\> |
+| `options?` | [`ReactFireOptions`](interfaces/ReactFireOptions.md)<`T`\> |
+
+#### Returns
+
+[`ObservableStatus`](interfaces/ObservableStatus.md)<`T`\>
+
+#### Defined in
+
+[src/firestore.tsx:74](https://github.com/FirebaseExtended/reactfire/blob/main/src/firestore.tsx#L74)
+
+___
+
+### useFirestoreDocOnce
+
+â–¸ **useFirestoreDocOnce**<`T`\>(`ref`, `options?`): [`ObservableStatus`](interfaces/ObservableStatus.md)<`DocumentSnapshot`<`T`\>\>
+
+Get a firestore document and don't subscribe to changes
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `T` | `DocumentData` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `ref` | `DocumentReference`<`T`\> |
+| `options?` | [`ReactFireOptions`](interfaces/ReactFireOptions.md)<`T`\> |
+
+#### Returns
+
+[`ObservableStatus`](interfaces/ObservableStatus.md)<`DocumentSnapshot`<`T`\>\>
+
+#### Defined in
+
+[src/firestore.tsx:52](https://github.com/FirebaseExtended/reactfire/blob/main/src/firestore.tsx#L52)
+
+___
+
+### useFunctions
+
+â–¸ **useFunctions**(): `Functions`
+
+#### Returns
+
+`Functions`
+
+#### Defined in
+
+[src/sdk.tsx:87](https://github.com/FirebaseExtended/reactfire/blob/main/src/sdk.tsx#L87)
+
+___
+
+### useIdTokenResult
+
+â–¸ **useIdTokenResult**(`user`, `forceRefresh?`, `options?`): [`ObservableStatus`](interfaces/ObservableStatus.md)<`IdTokenResult`\>
+
+#### Parameters
+
+| Name | Type | Default value |
+| :------ | :------ | :------ |
+| `user` | `User` | `undefined` |
+| `forceRefresh` | `boolean` | `false` |
+| `options?` | [`ReactFireOptions`](interfaces/ReactFireOptions.md)<`IdTokenResult`\> | `undefined` |
+
+#### Returns
+
+[`ObservableStatus`](interfaces/ObservableStatus.md)<`IdTokenResult`\>
+
+#### Defined in
+
+[src/auth.tsx:38](https://github.com/FirebaseExtended/reactfire/blob/main/src/auth.tsx#L38)
+
+___
+
+### useInitAnalytics
+
+â–¸ **useInitAnalytics**(`initializer`, `options?`): [`ObservableStatus`](interfaces/ObservableStatus.md)<`Analytics`\>
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `initializer` | (`firebaseApp`: `FirebaseApp`) => `Promise`<`Analytics`\> |
+| `options?` | [`ReactFireOptions`](interfaces/ReactFireOptions.md)<`Analytics`\> |
+
+#### Returns
+
+[`ObservableStatus`](interfaces/ObservableStatus.md)<`Analytics`\>
+
+#### Defined in
+
+[src/sdk.tsx:92](https://github.com/FirebaseExtended/reactfire/blob/main/src/sdk.tsx#L92)
+
+___
+
+### useInitAppCheck
+
+â–¸ **useInitAppCheck**(`initializer`, `options?`): [`ObservableStatus`](interfaces/ObservableStatus.md)<`AppCheck`\>
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `initializer` | (`firebaseApp`: `FirebaseApp`) => `Promise`<`AppCheck`\> |
+| `options?` | [`ReactFireOptions`](interfaces/ReactFireOptions.md)<`AppCheck`\> |
+
+#### Returns
+
+[`ObservableStatus`](interfaces/ObservableStatus.md)<`AppCheck`\>
+
+#### Defined in
+
+[src/sdk.tsx:92](https://github.com/FirebaseExtended/reactfire/blob/main/src/sdk.tsx#L92)
+
+___
+
+### useInitAuth
+
+â–¸ **useInitAuth**(`initializer`, `options?`): [`ObservableStatus`](interfaces/ObservableStatus.md)<`Auth`\>
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `initializer` | (`firebaseApp`: `FirebaseApp`) => `Promise`<`Auth`\> |
+| `options?` | [`ReactFireOptions`](interfaces/ReactFireOptions.md)<`Auth`\> |
+
+#### Returns
+
+[`ObservableStatus`](interfaces/ObservableStatus.md)<`Auth`\>
+
+#### Defined in
+
+[src/sdk.tsx:92](https://github.com/FirebaseExtended/reactfire/blob/main/src/sdk.tsx#L92)
+
+___
+
+### useInitDatabase
+
+â–¸ **useInitDatabase**(`initializer`, `options?`): [`ObservableStatus`](interfaces/ObservableStatus.md)<`Database`\>
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `initializer` | (`firebaseApp`: `FirebaseApp`) => `Promise`<`Database`\> |
+| `options?` | [`ReactFireOptions`](interfaces/ReactFireOptions.md)<`Database`\> |
+
+#### Returns
+
+[`ObservableStatus`](interfaces/ObservableStatus.md)<`Database`\>
+
+#### Defined in
+
+[src/sdk.tsx:92](https://github.com/FirebaseExtended/reactfire/blob/main/src/sdk.tsx#L92)
+
+___
+
+### useInitFirestore
+
+â–¸ **useInitFirestore**(`initializer`, `options?`): [`ObservableStatus`](interfaces/ObservableStatus.md)<`Firestore`\>
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `initializer` | (`firebaseApp`: `FirebaseApp`) => `Promise`<`Firestore`\> |
+| `options?` | [`ReactFireOptions`](interfaces/ReactFireOptions.md)<`Firestore`\> |
+
+#### Returns
+
+[`ObservableStatus`](interfaces/ObservableStatus.md)<`Firestore`\>
+
+#### Defined in
+
+[src/sdk.tsx:92](https://github.com/FirebaseExtended/reactfire/blob/main/src/sdk.tsx#L92)
+
+___
+
+### useInitFunctions
+
+â–¸ **useInitFunctions**(`initializer`, `options?`): [`ObservableStatus`](interfaces/ObservableStatus.md)<`Functions`\>
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `initializer` | (`firebaseApp`: `FirebaseApp`) => `Promise`<`Functions`\> |
+| `options?` | [`ReactFireOptions`](interfaces/ReactFireOptions.md)<`Functions`\> |
+
+#### Returns
+
+[`ObservableStatus`](interfaces/ObservableStatus.md)<`Functions`\>
+
+#### Defined in
+
+[src/sdk.tsx:92](https://github.com/FirebaseExtended/reactfire/blob/main/src/sdk.tsx#L92)
+
+___
+
+### useInitPerformance
+
+â–¸ **useInitPerformance**(`initializer`, `options?`): [`ObservableStatus`](interfaces/ObservableStatus.md)<`FirebasePerformance`\>
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `initializer` | (`firebaseApp`: `FirebaseApp`) => `Promise`<`FirebasePerformance`\> |
+| `options?` | [`ReactFireOptions`](interfaces/ReactFireOptions.md)<`FirebasePerformance`\> |
+
+#### Returns
+
+[`ObservableStatus`](interfaces/ObservableStatus.md)<`FirebasePerformance`\>
+
+#### Defined in
+
+[src/sdk.tsx:92](https://github.com/FirebaseExtended/reactfire/blob/main/src/sdk.tsx#L92)
+
+___
+
+### useInitRemoteConfig
+
+â–¸ **useInitRemoteConfig**(`initializer`, `options?`): [`ObservableStatus`](interfaces/ObservableStatus.md)<`RemoteConfig`\>
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `initializer` | (`firebaseApp`: `FirebaseApp`) => `Promise`<`RemoteConfig`\> |
+| `options?` | [`ReactFireOptions`](interfaces/ReactFireOptions.md)<`RemoteConfig`\> |
+
+#### Returns
+
+[`ObservableStatus`](interfaces/ObservableStatus.md)<`RemoteConfig`\>
+
+#### Defined in
+
+[src/sdk.tsx:92](https://github.com/FirebaseExtended/reactfire/blob/main/src/sdk.tsx#L92)
+
+___
+
+### useInitStorage
+
+â–¸ **useInitStorage**(`initializer`, `options?`): [`ObservableStatus`](interfaces/ObservableStatus.md)<`FirebaseStorage`\>
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `initializer` | (`firebaseApp`: `FirebaseApp`) => `Promise`<`FirebaseStorage`\> |
+| `options?` | [`ReactFireOptions`](interfaces/ReactFireOptions.md)<`FirebaseStorage`\> |
+
+#### Returns
+
+[`ObservableStatus`](interfaces/ObservableStatus.md)<`FirebaseStorage`\>
+
+#### Defined in
+
+[src/sdk.tsx:92](https://github.com/FirebaseExtended/reactfire/blob/main/src/sdk.tsx#L92)
+
+___
+
+### useIsSuspenseEnabled
+
+â–¸ **useIsSuspenseEnabled**(): `boolean`
+
+#### Returns
+
+`boolean`
+
+#### Defined in
+
+[src/firebaseApp.tsx:60](https://github.com/FirebaseExtended/reactfire/blob/main/src/firebaseApp.tsx#L60)
+
+___
+
+### useObservable
+
+â–¸ **useObservable**<`T`\>(`observableId`, `source`, `config?`): [`ObservableStatus`](interfaces/ObservableStatus.md)<`T`\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `T` | `unknown` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `observableId` | `string` |
+| `source` | `Observable`<`T`\> |
+| `config` | [`ReactFireOptions`](interfaces/ReactFireOptions.md)<`unknown`\> |
+
+#### Returns
+
+[`ObservableStatus`](interfaces/ObservableStatus.md)<`T`\>
+
+#### Defined in
+
+[src/useObservable.ts:95](https://github.com/FirebaseExtended/reactfire/blob/main/src/useObservable.ts#L95)
+
+___
+
+### usePerformance
+
+â–¸ **usePerformance**(): `FirebasePerformance`
+
+#### Returns
+
+`FirebasePerformance`
+
+#### Defined in
+
+[src/sdk.tsx:88](https://github.com/FirebaseExtended/reactfire/blob/main/src/sdk.tsx#L88)
+
+___
+
+### useRemoteConfig
+
+â–¸ **useRemoteConfig**(): `RemoteConfig`
+
+#### Returns
+
+`RemoteConfig`
+
+#### Defined in
+
+[src/sdk.tsx:90](https://github.com/FirebaseExtended/reactfire/blob/main/src/sdk.tsx#L90)
+
+___
+
+### useRemoteConfigAll
+
+â–¸ **useRemoteConfigAll**(`key`): [`ObservableStatus`](interfaces/ObservableStatus.md)<`AllParameters`\>
+
+Convience method similar to useRemoteConfigValue. Returns allRemote Config parameters.
+
+#### Parameters
+
+| Name | Type | Description |
+| :------ | :------ | :------ |
+| `key` | `string` | The parameter key in Remote Config |
+
+#### Returns
+
+[`ObservableStatus`](interfaces/ObservableStatus.md)<`AllParameters`\>
+
+#### Defined in
+
+[src/remote-config.tsx:66](https://github.com/FirebaseExtended/reactfire/blob/main/src/remote-config.tsx#L66)
+
+___
+
+### useRemoteConfigBoolean
+
+â–¸ **useRemoteConfigBoolean**(`key`): [`ObservableStatus`](interfaces/ObservableStatus.md)<`boolean`\>
+
+Convience method similar to useRemoteConfigValue. Returns a `boolean` from a Remote Config parameter.
+
+#### Parameters
+
+| Name | Type | Description |
+| :------ | :------ | :------ |
+| `key` | `string` | The parameter key in Remote Config |
+
+#### Returns
+
+[`ObservableStatus`](interfaces/ObservableStatus.md)<`boolean`\>
+
+#### Defined in
+
+[src/remote-config.tsx:58](https://github.com/FirebaseExtended/reactfire/blob/main/src/remote-config.tsx#L58)
+
+___
+
+### useRemoteConfigNumber
+
+â–¸ **useRemoteConfigNumber**(`key`): [`ObservableStatus`](interfaces/ObservableStatus.md)<`number`\>
+
+Convience method similar to useRemoteConfigValue. Returns a `number` from a Remote Config parameter.
+
+#### Parameters
+
+| Name | Type | Description |
+| :------ | :------ | :------ |
+| `key` | `string` | The parameter key in Remote Config |
+
+#### Returns
+
+[`ObservableStatus`](interfaces/ObservableStatus.md)<`number`\>
+
+#### Defined in
+
+[src/remote-config.tsx:50](https://github.com/FirebaseExtended/reactfire/blob/main/src/remote-config.tsx#L50)
+
+___
+
+### useRemoteConfigString
+
+â–¸ **useRemoteConfigString**(`key`): [`ObservableStatus`](interfaces/ObservableStatus.md)<`string`\>
+
+Convience method similar to useRemoteConfigValue. Returns a `string` from a Remote Config parameter.
+
+#### Parameters
+
+| Name | Type | Description |
+| :------ | :------ | :------ |
+| `key` | `string` | The parameter key in Remote Config |
+
+#### Returns
+
+[`ObservableStatus`](interfaces/ObservableStatus.md)<`string`\>
+
+#### Defined in
+
+[src/remote-config.tsx:42](https://github.com/FirebaseExtended/reactfire/blob/main/src/remote-config.tsx#L42)
+
+___
+
+### useRemoteConfigValue
+
+â–¸ **useRemoteConfigValue**(`key`): [`ObservableStatus`](interfaces/ObservableStatus.md)<`RemoteConfigValue`\>
+
+Accepts a key and optionally a Remote Config instance. Returns a
+Remote Config Value.
+
+#### Parameters
+
+| Name | Type | Description |
+| :------ | :------ | :------ |
+| `key` | `string` | The parameter key in Remote Config |
+
+#### Returns
+
+[`ObservableStatus`](interfaces/ObservableStatus.md)<`RemoteConfigValue`\>
+
+#### Defined in
+
+[src/remote-config.tsx:34](https://github.com/FirebaseExtended/reactfire/blob/main/src/remote-config.tsx#L34)
+
+___
+
+### useSigninCheck
+
+â–¸ **useSigninCheck**(`options?`): [`ObservableStatus`](interfaces/ObservableStatus.md)<[`SigninCheckResult`](README.md#signincheckresult)\>
+
+Subscribe to the signed-in status of a user.
+
+```ts
+const { status, data:signInCheckResult } = useSigninCheck();
+
+if (status === 'loading') {
+ return }
+
+if (signInCheckResult.signedIn === true) {
+ return
+} else {
+ return
+}
+```
+
+Optionally check [custom claims](https://firebase.google.com/docs/auth/admin/custom-claims) of a user as well.
+
+```ts
+// pass in an object describing the custom claims a user must have
+const {status, data: signInCheckResult} = useSignInCheck({requiredClaims: {admin: true}});
+
+// pass in a custom claims validator function
+const {status, data: signInCheckResult} = useSignInCheck({validateCustomClaims: (userClaims) => {
+ // custom validation logic...
+}});
+
+// You can optionally force-refresh the token
+const {status, data: signInCheckResult} = useSignInCheck({forceRefresh: true, requiredClaims: {admin: true}});
+```
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `options?` | [`SignInCheckOptionsBasic`](interfaces/SignInCheckOptionsBasic.md) \| [`SignInCheckOptionsClaimsObject`](interfaces/SignInCheckOptionsClaimsObject.md) \| [`SignInCheckOptionsClaimsValidator`](interfaces/SignInCheckOptionsClaimsValidator.md) |
+
+#### Returns
+
+[`ObservableStatus`](interfaces/ObservableStatus.md)<[`SigninCheckResult`](README.md#signincheckresult)\>
+
+#### Defined in
+
+[src/auth.tsx:131](https://github.com/FirebaseExtended/reactfire/blob/main/src/auth.tsx#L131)
+
+___
+
+### useStorage
+
+â–¸ **useStorage**(): `FirebaseStorage`
+
+#### Returns
+
+`FirebaseStorage`
+
+#### Defined in
+
+[src/sdk.tsx:89](https://github.com/FirebaseExtended/reactfire/blob/main/src/sdk.tsx#L89)
+
+___
+
+### useStorageDownloadURL
+
+â–¸ **useStorageDownloadURL**<`T`\>(`ref`, `options?`): [`ObservableStatus`](interfaces/ObservableStatus.md)<`string` \| `T`\>
+
+Subscribe to a storage ref's download URL
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `T` | `string` |
+
+#### Parameters
+
+| Name | Type | Description |
+| :------ | :------ | :------ |
+| `ref` | `StorageReference` | reference to the blob you want to download |
+| `options?` | [`ReactFireOptions`](interfaces/ReactFireOptions.md)<`T`\> | |
+
+#### Returns
+
+[`ObservableStatus`](interfaces/ObservableStatus.md)<`string` \| `T`\>
+
+#### Defined in
+
+[src/storage.tsx:29](https://github.com/FirebaseExtended/reactfire/blob/main/src/storage.tsx#L29)
+
+___
+
+### useStorageTask
+
+â–¸ **useStorageTask**<`T`\>(`task`, `ref`, `options?`): [`ObservableStatus`](interfaces/ObservableStatus.md)<`UploadTaskSnapshot` \| `T`\>
+
+Subscribe to the progress of a storage task
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `T` | `unknown` |
+
+#### Parameters
+
+| Name | Type | Description |
+| :------ | :------ | :------ |
+| `task` | `UploadTask` | the task you want to listen to |
+| `ref` | `StorageReference` | reference to the blob the task is acting on |
+| `options?` | [`ReactFireOptions`](interfaces/ReactFireOptions.md)<`T`\> | |
+
+#### Returns
+
+[`ObservableStatus`](interfaces/ObservableStatus.md)<`UploadTaskSnapshot` \| `T`\>
+
+#### Defined in
+
+[src/storage.tsx:16](https://github.com/FirebaseExtended/reactfire/blob/main/src/storage.tsx#L16)
+
+___
+
+### useSuspenseEnabledFromConfigAndContext
+
+â–¸ **useSuspenseEnabledFromConfigAndContext**(`suspenseFromConfig?`): `boolean`
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `suspenseFromConfig?` | `boolean` |
+
+#### Returns
+
+`boolean`
+
+#### Defined in
+
+[src/firebaseApp.tsx:67](https://github.com/FirebaseExtended/reactfire/blob/main/src/firebaseApp.tsx#L67)
+
+___
+
+### useUser
+
+â–¸ **useUser**<`T`\>(`options?`): [`ObservableStatus`](interfaces/ObservableStatus.md)<`User` \| ``null``\>
+
+Subscribe to Firebase auth state changes, including token refresh
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `T` | `unknown` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `options?` | [`ReactFireOptions`](interfaces/ReactFireOptions.md)<`T`\> |
+
+#### Returns
+
+[`ObservableStatus`](interfaces/ObservableStatus.md)<`User` \| ``null``\>
+
+#### Defined in
+
+[src/auth.tsx:22](https://github.com/FirebaseExtended/reactfire/blob/main/src/auth.tsx#L22)
diff --git a/docs/reference/classes/index.ReactFireError.md b/docs/reference/classes/ReactFireError.md
similarity index 67%
rename from docs/reference/classes/index.ReactFireError.md
rename to docs/reference/classes/ReactFireError.md
index 09abdbe1..9c0dc43e 100644
--- a/docs/reference/classes/index.ReactFireError.md
+++ b/docs/reference/classes/ReactFireError.md
@@ -1,9 +1,7 @@
-[ReactFire reference docs](../README.md) / [index](../modules/index.md) / ReactFireError
+[ReactFire reference docs](../README.md) / ReactFireError
# Class: ReactFireError
-[index](../modules/index.md).ReactFireError
-
## Hierarchy
- `Error`
@@ -14,21 +12,22 @@
### Constructors
-- [constructor](index.ReactFireError.md#constructor)
+- [constructor](ReactFireError.md#constructor)
### Properties
-- [code](index.ReactFireError.md#code)
-- [customData](index.ReactFireError.md#customdata)
-- [message](index.ReactFireError.md#message)
-- [name](index.ReactFireError.md#name)
-- [stack](index.ReactFireError.md#stack)
-- [prepareStackTrace](index.ReactFireError.md#preparestacktrace)
-- [stackTraceLimit](index.ReactFireError.md#stacktracelimit)
+- [cause](ReactFireError.md#cause)
+- [code](ReactFireError.md#code)
+- [customData](ReactFireError.md#customdata)
+- [message](ReactFireError.md#message)
+- [name](ReactFireError.md#name)
+- [stack](ReactFireError.md#stack)
+- [prepareStackTrace](ReactFireError.md#preparestacktrace)
+- [stackTraceLimit](ReactFireError.md#stacktracelimit)
### Methods
-- [captureStackTrace](index.ReactFireError.md#capturestacktrace)
+- [captureStackTrace](ReactFireError.md#capturestacktrace)
## Constructors
@@ -54,16 +53,38 @@ Error.constructor
## Properties
+### cause
+
+• `Optional` **cause**: `Error`
+
+#### Inherited from
+
+Error.cause
+
+#### Defined in
+
+node_modules/typescript/lib/lib.es2022.error.d.ts:26
+
+___
+
### code
• `Readonly` **code**: `string`
+#### Defined in
+
+[src/index.ts:15](https://github.com/FirebaseExtended/reactfire/blob/main/src/index.ts#L15)
+
___
### customData
• `Optional` **customData**: `Record`<`string`, `unknown`\>
+#### Defined in
+
+[src/index.ts:15](https://github.com/FirebaseExtended/reactfire/blob/main/src/index.ts#L15)
+
___
### message
@@ -76,7 +97,7 @@ Error.message
#### Defined in
-node_modules/typescript/lib/lib.es5.d.ts:974
+node_modules/typescript/lib/lib.es5.d.ts:1029
___
@@ -104,7 +125,7 @@ Error.stack
#### Defined in
-node_modules/typescript/lib/lib.es5.d.ts:975
+node_modules/typescript/lib/lib.es5.d.ts:1030
___
@@ -118,6 +139,10 @@ ___
Optional override for formatting stack traces
+**`See`**
+
+https://v8.dev/docs/stack-trace-api#customizing-stack-traces
+
##### Parameters
| Name | Type |
diff --git a/docs/reference/classes/SuspenseSubject.SuspenseSubject-1.md b/docs/reference/classes/SuspenseSubject.SuspenseSubject-1.md
deleted file mode 100644
index dc6003da..00000000
--- a/docs/reference/classes/SuspenseSubject.SuspenseSubject-1.md
+++ /dev/null
@@ -1,1202 +0,0 @@
-[ReactFire reference docs](../README.md) / [SuspenseSubject](../modules/SuspenseSubject.md) / SuspenseSubject
-
-# Class: SuspenseSubject
-
-[SuspenseSubject](../modules/SuspenseSubject.md).SuspenseSubject
-
-## Type parameters
-
-| Name |
-| :------ |
-| `T` |
-
-## Hierarchy
-
-- `Subject`<`T`\>
-
- ↳ **`SuspenseSubject`**
-
-## Table of contents
-
-### Constructors
-
-- [constructor](SuspenseSubject.SuspenseSubject-1.md#constructor)
-
-### Properties
-
-- [\_error](SuspenseSubject.SuspenseSubject-1.md#_error)
-- [\_firstEmission](SuspenseSubject.SuspenseSubject-1.md#_firstemission)
-- [\_hasValue](SuspenseSubject.SuspenseSubject-1.md#_hasvalue)
-- [\_innerObservable](SuspenseSubject.SuspenseSubject-1.md#_innerobservable)
-- [\_innerSubscriber](SuspenseSubject.SuspenseSubject-1.md#_innersubscriber)
-- [\_resolveFirstEmission](SuspenseSubject.SuspenseSubject-1.md#_resolvefirstemission)
-- [\_timeoutHandler](SuspenseSubject.SuspenseSubject-1.md#_timeouthandler)
-- [\_value](SuspenseSubject.SuspenseSubject-1.md#_value)
-- [\_warmupSubscription](SuspenseSubject.SuspenseSubject-1.md#_warmupsubscription)
-- [closed](SuspenseSubject.SuspenseSubject-1.md#closed)
-- [hasError](SuspenseSubject.SuspenseSubject-1.md#haserror)
-- [isStopped](SuspenseSubject.SuspenseSubject-1.md#isstopped)
-- [observers](SuspenseSubject.SuspenseSubject-1.md#observers)
-- [operator](SuspenseSubject.SuspenseSubject-1.md#operator)
-- [source](SuspenseSubject.SuspenseSubject-1.md#source)
-- [thrownError](SuspenseSubject.SuspenseSubject-1.md#thrownerror)
-- [create](SuspenseSubject.SuspenseSubject-1.md#create)
-
-### Accessors
-
-- [firstEmission](SuspenseSubject.SuspenseSubject-1.md#firstemission)
-- [hasValue](SuspenseSubject.SuspenseSubject-1.md#hasvalue)
-- [observed](SuspenseSubject.SuspenseSubject-1.md#observed)
-- [ourError](SuspenseSubject.SuspenseSubject-1.md#ourerror)
-- [value](SuspenseSubject.SuspenseSubject-1.md#value)
-
-### Methods
-
-- [\_next](SuspenseSubject.SuspenseSubject-1.md#_next)
-- [\_reset](SuspenseSubject.SuspenseSubject-1.md#_reset)
-- [\_subscribe](SuspenseSubject.SuspenseSubject-1.md#_subscribe)
-- [asObservable](SuspenseSubject.SuspenseSubject-1.md#asobservable)
-- [complete](SuspenseSubject.SuspenseSubject-1.md#complete)
-- [error](SuspenseSubject.SuspenseSubject-1.md#error)
-- [forEach](SuspenseSubject.SuspenseSubject-1.md#foreach)
-- [lift](SuspenseSubject.SuspenseSubject-1.md#lift)
-- [next](SuspenseSubject.SuspenseSubject-1.md#next)
-- [pipe](SuspenseSubject.SuspenseSubject-1.md#pipe)
-- [subscribe](SuspenseSubject.SuspenseSubject-1.md#subscribe)
-- [toPromise](SuspenseSubject.SuspenseSubject-1.md#topromise)
-- [unsubscribe](SuspenseSubject.SuspenseSubject-1.md#unsubscribe)
-
-## Constructors
-
-### constructor
-
-• **new SuspenseSubject**<`T`\>(`innerObservable`, `_timeoutWindow`)
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `T` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `innerObservable` | `Observable`<`T`\> |
-| `_timeoutWindow` | `number` |
-
-#### Overrides
-
-Subject<T\>.constructor
-
-#### Defined in
-
-[src/SuspenseSubject.ts:18](https://github.com/FirebaseExtended/reactfire/blob/main/src/SuspenseSubject.ts#L18)
-
-## Properties
-
-### \_error
-
-• `Private` **\_error**: `any`
-
-#### Defined in
-
-[src/SuspenseSubject.ts:9](https://github.com/FirebaseExtended/reactfire/blob/main/src/SuspenseSubject.ts#L9)
-
-___
-
-### \_firstEmission
-
-• `Private` **\_firstEmission**: `Promise`<`void`\>
-
-#### Defined in
-
-[src/SuspenseSubject.ts:8](https://github.com/FirebaseExtended/reactfire/blob/main/src/SuspenseSubject.ts#L8)
-
-___
-
-### \_hasValue
-
-• `Private` **\_hasValue**: `boolean` = `false`
-
-#### Defined in
-
-[src/SuspenseSubject.ts:6](https://github.com/FirebaseExtended/reactfire/blob/main/src/SuspenseSubject.ts#L6)
-
-___
-
-### \_innerObservable
-
-• `Private` **\_innerObservable**: `Observable`<`T`\>
-
-#### Defined in
-
-[src/SuspenseSubject.ts:10](https://github.com/FirebaseExtended/reactfire/blob/main/src/SuspenseSubject.ts#L10)
-
-___
-
-### \_innerSubscriber
-
-• `Private` **\_innerSubscriber**: `Subscription`
-
-#### Defined in
-
-[src/SuspenseSubject.ts:14](https://github.com/FirebaseExtended/reactfire/blob/main/src/SuspenseSubject.ts#L14)
-
-___
-
-### \_resolveFirstEmission
-
-• `Private` **\_resolveFirstEmission**: () => `void`
-
-#### Type declaration
-
-â–¸ (): `void`
-
-##### Returns
-
-`void`
-
-#### Defined in
-
-[src/SuspenseSubject.ts:16](https://github.com/FirebaseExtended/reactfire/blob/main/src/SuspenseSubject.ts#L16)
-
-___
-
-### \_timeoutHandler
-
-• `Private` **\_timeoutHandler**: `Timeout`
-
-#### Defined in
-
-[src/SuspenseSubject.ts:7](https://github.com/FirebaseExtended/reactfire/blob/main/src/SuspenseSubject.ts#L7)
-
-___
-
-### \_value
-
-• `Private` **\_value**: `undefined` \| `T`
-
-#### Defined in
-
-[src/SuspenseSubject.ts:5](https://github.com/FirebaseExtended/reactfire/blob/main/src/SuspenseSubject.ts#L5)
-
-___
-
-### \_warmupSubscription
-
-• `Private` **\_warmupSubscription**: `Subscription`
-
-#### Defined in
-
-[src/SuspenseSubject.ts:11](https://github.com/FirebaseExtended/reactfire/blob/main/src/SuspenseSubject.ts#L11)
-
-___
-
-### closed
-
-• **closed**: `boolean`
-
-#### Inherited from
-
-Subject.closed
-
-#### Defined in
-
-node_modules/rxjs/dist/types/internal/Subject.d.ts:12
-
-___
-
-### hasError
-
-• **hasError**: `boolean`
-
-**`deprecated`** Internal implementation detail, do not use directly. Will be made internal in v8.
-
-#### Inherited from
-
-Subject.hasError
-
-#### Defined in
-
-node_modules/rxjs/dist/types/internal/Subject.d.ts:18
-
-___
-
-### isStopped
-
-• **isStopped**: `boolean`
-
-**`deprecated`** Internal implementation detail, do not use directly. Will be made internal in v8.
-
-#### Inherited from
-
-Subject.isStopped
-
-#### Defined in
-
-node_modules/rxjs/dist/types/internal/Subject.d.ts:16
-
-___
-
-### observers
-
-• **observers**: `Observer`<`T`\>[]
-
-**`deprecated`** Internal implementation detail, do not use directly. Will be made internal in v8.
-
-#### Inherited from
-
-Subject.observers
-
-#### Defined in
-
-node_modules/rxjs/dist/types/internal/Subject.d.ts:14
-
-___
-
-### operator
-
-• **operator**: `undefined` \| `Operator`<`any`, `T`\>
-
-**`deprecated`** Internal implementation detail, do not use directly. Will be made internal in v8.
-
-#### Inherited from
-
-Subject.operator
-
-#### Defined in
-
-node_modules/rxjs/dist/types/internal/Observable.d.ts:22
-
-___
-
-### source
-
-• **source**: `undefined` \| `Observable`<`any`\>
-
-**`deprecated`** Internal implementation detail, do not use directly. Will be made internal in v8.
-
-#### Inherited from
-
-Subject.source
-
-#### Defined in
-
-node_modules/rxjs/dist/types/internal/Observable.d.ts:18
-
-___
-
-### thrownError
-
-• **thrownError**: `any`
-
-**`deprecated`** Internal implementation detail, do not use directly. Will be made internal in v8.
-
-#### Inherited from
-
-Subject.thrownError
-
-#### Defined in
-
-node_modules/rxjs/dist/types/internal/Subject.d.ts:20
-
-___
-
-### create
-
-â–ª `Static` **create**: (...`args`: `any`[]) => `any`
-
-Creates a "subject" by basically gluing an observer to an observable.
-
-**`nocollapse`**
-
-**`deprecated`** Recommended you do not use. Will be removed at some point in the future. Plans for replacement still under discussion.
-
-#### Type declaration
-
-â–¸ (...`args`): `any`
-
-Creates a "subject" by basically gluing an observer to an observable.
-
-**`nocollapse`**
-
-**`deprecated`** Recommended you do not use. Will be removed at some point in the future. Plans for replacement still under discussion.
-
-##### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `...args` | `any`[] |
-
-##### Returns
-
-`any`
-
-#### Inherited from
-
-Subject.create
-
-#### Defined in
-
-node_modules/rxjs/dist/types/internal/Subject.d.ts:27
-
-## Accessors
-
-### firstEmission
-
-• `get` **firstEmission**(): `Promise`<`void`\>
-
-#### Returns
-
-`Promise`<`void`\>
-
-#### Defined in
-
-[src/SuspenseSubject.ts:63](https://github.com/FirebaseExtended/reactfire/blob/main/src/SuspenseSubject.ts#L63)
-
-___
-
-### hasValue
-
-• `get` **hasValue**(): `boolean`
-
-#### Returns
-
-`boolean`
-
-#### Defined in
-
-[src/SuspenseSubject.ts:44](https://github.com/FirebaseExtended/reactfire/blob/main/src/SuspenseSubject.ts#L44)
-
-___
-
-### observed
-
-• `get` **observed**(): `boolean`
-
-#### Returns
-
-`boolean`
-
-#### Defined in
-
-node_modules/rxjs/dist/types/internal/Subject.d.ts:35
-
-___
-
-### ourError
-
-• `get` **ourError**(): `any`
-
-#### Returns
-
-`any`
-
-#### Defined in
-
-[src/SuspenseSubject.ts:92](https://github.com/FirebaseExtended/reactfire/blob/main/src/SuspenseSubject.ts#L92)
-
-___
-
-### value
-
-• `get` **value**(): `T`
-
-#### Returns
-
-`T`
-
-#### Defined in
-
-[src/SuspenseSubject.ts:51](https://github.com/FirebaseExtended/reactfire/blob/main/src/SuspenseSubject.ts#L51)
-
-## Methods
-
-### \_next
-
-â–¸ `Private` **_next**(`value`): `void`
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `value` | `T` |
-
-#### Returns
-
-`void`
-
-#### Defined in
-
-[src/SuspenseSubject.ts:67](https://github.com/FirebaseExtended/reactfire/blob/main/src/SuspenseSubject.ts#L67)
-
-___
-
-### \_reset
-
-â–¸ `Private` **_reset**(): `void`
-
-#### Returns
-
-`void`
-
-#### Defined in
-
-[src/SuspenseSubject.ts:73](https://github.com/FirebaseExtended/reactfire/blob/main/src/SuspenseSubject.ts#L73)
-
-___
-
-### \_subscribe
-
-â–¸ **_subscribe**(`subscriber`): `Subscription`
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `subscriber` | `Subscriber`<`T`\> |
-
-#### Returns
-
-`Subscription`
-
-#### Defined in
-
-[src/SuspenseSubject.ts:84](https://github.com/FirebaseExtended/reactfire/blob/main/src/SuspenseSubject.ts#L84)
-
-___
-
-### asObservable
-
-â–¸ **asObservable**(): `Observable`<`T`\>
-
-Creates a new Observable with this Subject as the source. You can do this
-to create customize Observer-side logic of the Subject and conceal it from
-code that uses the Observable.
-
-#### Returns
-
-`Observable`<`T`\>
-
-Observable that the Subject casts to
-
-#### Inherited from
-
-Subject.asObservable
-
-#### Defined in
-
-node_modules/rxjs/dist/types/internal/Subject.d.ts:42
-
-___
-
-### complete
-
-â–¸ **complete**(): `void`
-
-#### Returns
-
-`void`
-
-#### Inherited from
-
-Subject.complete
-
-#### Defined in
-
-node_modules/rxjs/dist/types/internal/Subject.d.ts:33
-
-___
-
-### error
-
-â–¸ **error**(`err`): `void`
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `err` | `any` |
-
-#### Returns
-
-`void`
-
-#### Inherited from
-
-Subject.error
-
-#### Defined in
-
-node_modules/rxjs/dist/types/internal/Subject.d.ts:32
-
-___
-
-### forEach
-
-â–¸ **forEach**(`next`): `Promise`<`void`\>
-
-Used as a NON-CANCELLABLE means of subscribing to an observable, for use with
-APIs that expect promises, like `async/await`. You cannot unsubscribe from this.
-
-**WARNING**: Only use this with observables you *know* will complete. If the source
-observable does not complete, you will end up with a promise that is hung up, and
-potentially all of the state of an async function hanging out in memory. To avoid
-this situation, look into adding something like {@link timeout}, {@link take},
-{@link takeWhile}, or {@link takeUntil} amongst others.
-
-### Example:
-
-```ts
-import { interval } from 'rxjs';
-import { take } from 'rxjs/operators';
-
-const source$ = interval(1000).pipe(take(4));
-
-async function getTotal() {
- let total = 0;
-
- await source$.forEach(value => {
- total += value;
- console.log('observable -> ', value);
- });
-
- return total;
-}
-
-getTotal().then(
- total => console.log('Total:', total)
-)
-
-// Expected:
-// "observable -> 0"
-// "observable -> 1"
-// "observable -> 2"
-// "observable -> 3"
-// "Total: 6"
-```
-
-#### Parameters
-
-| Name | Type | Description |
-| :------ | :------ | :------ |
-| `next` | (`value`: `T`) => `void` | a handler for each value emitted by the observable |
-
-#### Returns
-
-`Promise`<`void`\>
-
-a promise that either resolves on observable completion or
- rejects with the handled error
-
-#### Inherited from
-
-Subject.forEach
-
-#### Defined in
-
-node_modules/rxjs/dist/types/internal/Observable.d.ts:101
-
-â–¸ **forEach**(`next`, `promiseCtor`): `Promise`<`void`\>
-
-**`deprecated`** Passing a Promise constructor will no longer be available
-in upcoming versions of RxJS. This is because it adds weight to the library, for very
-little benefit. If you need this functionality, it is recommended that you either
-polyfill Promise, or you create an adapter to convert the returned native promise
-to whatever promise implementation you wanted. Will be removed in v8.
-
-#### Parameters
-
-| Name | Type | Description |
-| :------ | :------ | :------ |
-| `next` | (`value`: `T`) => `void` | a handler for each value emitted by the observable |
-| `promiseCtor` | `PromiseConstructorLike` | a constructor function used to instantiate the Promise |
-
-#### Returns
-
-`Promise`<`void`\>
-
-a promise that either resolves on observable completion or
- rejects with the handled error
-
-#### Inherited from
-
-Subject.forEach
-
-#### Defined in
-
-node_modules/rxjs/dist/types/internal/Observable.d.ts:113
-
-___
-
-### lift
-
-â–¸ **lift**<`R`\>(`operator`): `Observable`<`R`\>
-
-**`deprecated`** Internal implementation detail, do not use directly. Will be made internal in v8.
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `R` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `operator` | `Operator`<`T`, `R`\> |
-
-#### Returns
-
-`Observable`<`R`\>
-
-#### Inherited from
-
-Subject.lift
-
-#### Defined in
-
-node_modules/rxjs/dist/types/internal/Subject.d.ts:30
-
-___
-
-### next
-
-â–¸ **next**(`value`): `void`
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `value` | `T` |
-
-#### Returns
-
-`void`
-
-#### Inherited from
-
-Subject.next
-
-#### Defined in
-
-node_modules/rxjs/dist/types/internal/Subject.d.ts:31
-
-___
-
-### pipe
-
-â–¸ **pipe**(): `Observable`<`T`\>
-
-#### Returns
-
-`Observable`<`T`\>
-
-#### Inherited from
-
-Subject.pipe
-
-#### Defined in
-
-node_modules/rxjs/dist/types/internal/Observable.d.ts:114
-
-â–¸ **pipe**<`A`\>(`op1`): `Observable`<`A`\>
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `A` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `op1` | `OperatorFunction`<`T`, `A`\> |
-
-#### Returns
-
-`Observable`<`A`\>
-
-#### Inherited from
-
-Subject.pipe
-
-#### Defined in
-
-node_modules/rxjs/dist/types/internal/Observable.d.ts:115
-
-â–¸ **pipe**<`A`, `B`\>(`op1`, `op2`): `Observable`<`B`\>
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `A` |
-| `B` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `op1` | `OperatorFunction`<`T`, `A`\> |
-| `op2` | `OperatorFunction`<`A`, `B`\> |
-
-#### Returns
-
-`Observable`<`B`\>
-
-#### Inherited from
-
-Subject.pipe
-
-#### Defined in
-
-node_modules/rxjs/dist/types/internal/Observable.d.ts:116
-
-â–¸ **pipe**<`A`, `B`, `C`\>(`op1`, `op2`, `op3`): `Observable`<`C`\>
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `A` |
-| `B` |
-| `C` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `op1` | `OperatorFunction`<`T`, `A`\> |
-| `op2` | `OperatorFunction`<`A`, `B`\> |
-| `op3` | `OperatorFunction`<`B`, `C`\> |
-
-#### Returns
-
-`Observable`<`C`\>
-
-#### Inherited from
-
-Subject.pipe
-
-#### Defined in
-
-node_modules/rxjs/dist/types/internal/Observable.d.ts:117
-
-â–¸ **pipe**<`A`, `B`, `C`, `D`\>(`op1`, `op2`, `op3`, `op4`): `Observable`<`D`\>
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `A` |
-| `B` |
-| `C` |
-| `D` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `op1` | `OperatorFunction`<`T`, `A`\> |
-| `op2` | `OperatorFunction`<`A`, `B`\> |
-| `op3` | `OperatorFunction`<`B`, `C`\> |
-| `op4` | `OperatorFunction`<`C`, `D`\> |
-
-#### Returns
-
-`Observable`<`D`\>
-
-#### Inherited from
-
-Subject.pipe
-
-#### Defined in
-
-node_modules/rxjs/dist/types/internal/Observable.d.ts:118
-
-â–¸ **pipe**<`A`, `B`, `C`, `D`, `E`\>(`op1`, `op2`, `op3`, `op4`, `op5`): `Observable`<`E`\>
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `A` |
-| `B` |
-| `C` |
-| `D` |
-| `E` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `op1` | `OperatorFunction`<`T`, `A`\> |
-| `op2` | `OperatorFunction`<`A`, `B`\> |
-| `op3` | `OperatorFunction`<`B`, `C`\> |
-| `op4` | `OperatorFunction`<`C`, `D`\> |
-| `op5` | `OperatorFunction`<`D`, `E`\> |
-
-#### Returns
-
-`Observable`<`E`\>
-
-#### Inherited from
-
-Subject.pipe
-
-#### Defined in
-
-node_modules/rxjs/dist/types/internal/Observable.d.ts:119
-
-â–¸ **pipe**<`A`, `B`, `C`, `D`, `E`, `F`\>(`op1`, `op2`, `op3`, `op4`, `op5`, `op6`): `Observable`<`F`\>
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `A` |
-| `B` |
-| `C` |
-| `D` |
-| `E` |
-| `F` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `op1` | `OperatorFunction`<`T`, `A`\> |
-| `op2` | `OperatorFunction`<`A`, `B`\> |
-| `op3` | `OperatorFunction`<`B`, `C`\> |
-| `op4` | `OperatorFunction`<`C`, `D`\> |
-| `op5` | `OperatorFunction`<`D`, `E`\> |
-| `op6` | `OperatorFunction`<`E`, `F`\> |
-
-#### Returns
-
-`Observable`<`F`\>
-
-#### Inherited from
-
-Subject.pipe
-
-#### Defined in
-
-node_modules/rxjs/dist/types/internal/Observable.d.ts:120
-
-â–¸ **pipe**<`A`, `B`, `C`, `D`, `E`, `F`, `G`\>(`op1`, `op2`, `op3`, `op4`, `op5`, `op6`, `op7`): `Observable`<`G`\>
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `A` |
-| `B` |
-| `C` |
-| `D` |
-| `E` |
-| `F` |
-| `G` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `op1` | `OperatorFunction`<`T`, `A`\> |
-| `op2` | `OperatorFunction`<`A`, `B`\> |
-| `op3` | `OperatorFunction`<`B`, `C`\> |
-| `op4` | `OperatorFunction`<`C`, `D`\> |
-| `op5` | `OperatorFunction`<`D`, `E`\> |
-| `op6` | `OperatorFunction`<`E`, `F`\> |
-| `op7` | `OperatorFunction`<`F`, `G`\> |
-
-#### Returns
-
-`Observable`<`G`\>
-
-#### Inherited from
-
-Subject.pipe
-
-#### Defined in
-
-node_modules/rxjs/dist/types/internal/Observable.d.ts:121
-
-â–¸ **pipe**<`A`, `B`, `C`, `D`, `E`, `F`, `G`, `H`\>(`op1`, `op2`, `op3`, `op4`, `op5`, `op6`, `op7`, `op8`): `Observable`<`H`\>
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `A` |
-| `B` |
-| `C` |
-| `D` |
-| `E` |
-| `F` |
-| `G` |
-| `H` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `op1` | `OperatorFunction`<`T`, `A`\> |
-| `op2` | `OperatorFunction`<`A`, `B`\> |
-| `op3` | `OperatorFunction`<`B`, `C`\> |
-| `op4` | `OperatorFunction`<`C`, `D`\> |
-| `op5` | `OperatorFunction`<`D`, `E`\> |
-| `op6` | `OperatorFunction`<`E`, `F`\> |
-| `op7` | `OperatorFunction`<`F`, `G`\> |
-| `op8` | `OperatorFunction`<`G`, `H`\> |
-
-#### Returns
-
-`Observable`<`H`\>
-
-#### Inherited from
-
-Subject.pipe
-
-#### Defined in
-
-node_modules/rxjs/dist/types/internal/Observable.d.ts:122
-
-â–¸ **pipe**<`A`, `B`, `C`, `D`, `E`, `F`, `G`, `H`, `I`\>(`op1`, `op2`, `op3`, `op4`, `op5`, `op6`, `op7`, `op8`, `op9`): `Observable`<`I`\>
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `A` |
-| `B` |
-| `C` |
-| `D` |
-| `E` |
-| `F` |
-| `G` |
-| `H` |
-| `I` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `op1` | `OperatorFunction`<`T`, `A`\> |
-| `op2` | `OperatorFunction`<`A`, `B`\> |
-| `op3` | `OperatorFunction`<`B`, `C`\> |
-| `op4` | `OperatorFunction`<`C`, `D`\> |
-| `op5` | `OperatorFunction`<`D`, `E`\> |
-| `op6` | `OperatorFunction`<`E`, `F`\> |
-| `op7` | `OperatorFunction`<`F`, `G`\> |
-| `op8` | `OperatorFunction`<`G`, `H`\> |
-| `op9` | `OperatorFunction`<`H`, `I`\> |
-
-#### Returns
-
-`Observable`<`I`\>
-
-#### Inherited from
-
-Subject.pipe
-
-#### Defined in
-
-node_modules/rxjs/dist/types/internal/Observable.d.ts:123
-
-â–¸ **pipe**<`A`, `B`, `C`, `D`, `E`, `F`, `G`, `H`, `I`\>(`op1`, `op2`, `op3`, `op4`, `op5`, `op6`, `op7`, `op8`, `op9`, ...`operations`): `Observable`<`unknown`\>
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `A` |
-| `B` |
-| `C` |
-| `D` |
-| `E` |
-| `F` |
-| `G` |
-| `H` |
-| `I` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `op1` | `OperatorFunction`<`T`, `A`\> |
-| `op2` | `OperatorFunction`<`A`, `B`\> |
-| `op3` | `OperatorFunction`<`B`, `C`\> |
-| `op4` | `OperatorFunction`<`C`, `D`\> |
-| `op5` | `OperatorFunction`<`D`, `E`\> |
-| `op6` | `OperatorFunction`<`E`, `F`\> |
-| `op7` | `OperatorFunction`<`F`, `G`\> |
-| `op8` | `OperatorFunction`<`G`, `H`\> |
-| `op9` | `OperatorFunction`<`H`, `I`\> |
-| `...operations` | `OperatorFunction`<`any`, `any`\>[] |
-
-#### Returns
-
-`Observable`<`unknown`\>
-
-#### Inherited from
-
-Subject.pipe
-
-#### Defined in
-
-node_modules/rxjs/dist/types/internal/Observable.d.ts:124
-
-___
-
-### subscribe
-
-â–¸ **subscribe**(`observer?`): `Subscription`
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `observer?` | `Partial`<`Observer`<`T`\>\> |
-
-#### Returns
-
-`Subscription`
-
-#### Inherited from
-
-Subject.subscribe
-
-#### Defined in
-
-node_modules/rxjs/dist/types/internal/Observable.d.ts:53
-
-â–¸ **subscribe**(`next`): `Subscription`
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `next` | (`value`: `T`) => `void` |
-
-#### Returns
-
-`Subscription`
-
-#### Inherited from
-
-Subject.subscribe
-
-#### Defined in
-
-node_modules/rxjs/dist/types/internal/Observable.d.ts:54
-
-â–¸ **subscribe**(`next?`, `error?`, `complete?`): `Subscription`
-
-**`deprecated`** Instead of passing separate callback arguments, use an observer argument. Signatures taking separate callback arguments will be removed in v8. Details: https://rxjs.dev/deprecations/subscribe-arguments
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `next?` | ``null`` \| (`value`: `T`) => `void` |
-| `error?` | ``null`` \| (`error`: `any`) => `void` |
-| `complete?` | ``null`` \| () => `void` |
-
-#### Returns
-
-`Subscription`
-
-#### Inherited from
-
-Subject.subscribe
-
-#### Defined in
-
-node_modules/rxjs/dist/types/internal/Observable.d.ts:56
-
-___
-
-### toPromise
-
-â–¸ **toPromise**(): `Promise`<`undefined` \| `T`\>
-
-**`deprecated`** Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise
-
-#### Returns
-
-`Promise`<`undefined` \| `T`\>
-
-#### Inherited from
-
-Subject.toPromise
-
-#### Defined in
-
-node_modules/rxjs/dist/types/internal/Observable.d.ts:126
-
-â–¸ **toPromise**(`PromiseCtor`): `Promise`<`undefined` \| `T`\>
-
-**`deprecated`** Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `PromiseCtor` | `PromiseConstructor` |
-
-#### Returns
-
-`Promise`<`undefined` \| `T`\>
-
-#### Inherited from
-
-Subject.toPromise
-
-#### Defined in
-
-node_modules/rxjs/dist/types/internal/Observable.d.ts:128
-
-â–¸ **toPromise**(`PromiseCtor`): `Promise`<`undefined` \| `T`\>
-
-**`deprecated`** Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `PromiseCtor` | `PromiseConstructorLike` |
-
-#### Returns
-
-`Promise`<`undefined` \| `T`\>
-
-#### Inherited from
-
-Subject.toPromise
-
-#### Defined in
-
-node_modules/rxjs/dist/types/internal/Observable.d.ts:130
-
-___
-
-### unsubscribe
-
-â–¸ **unsubscribe**(): `void`
-
-#### Returns
-
-`void`
-
-#### Inherited from
-
-Subject.unsubscribe
-
-#### Defined in
-
-node_modules/rxjs/dist/types/internal/Subject.d.ts:34
diff --git a/docs/reference/interfaces/auth.AuthCheckProps.md b/docs/reference/interfaces/AuthCheckProps.md
similarity index 67%
rename from docs/reference/interfaces/auth.AuthCheckProps.md
rename to docs/reference/interfaces/AuthCheckProps.md
index 241dc75c..8538b758 100644
--- a/docs/reference/interfaces/auth.AuthCheckProps.md
+++ b/docs/reference/interfaces/AuthCheckProps.md
@@ -1,16 +1,14 @@
-[ReactFire reference docs](../README.md) / [auth](../modules/auth.md) / AuthCheckProps
+[ReactFire reference docs](../README.md) / AuthCheckProps
# Interface: AuthCheckProps
-[auth](../modules/auth.md).AuthCheckProps
-
## Table of contents
### Properties
-- [children](auth.AuthCheckProps.md#children)
-- [fallback](auth.AuthCheckProps.md#fallback)
-- [requiredClaims](auth.AuthCheckProps.md#requiredclaims)
+- [children](AuthCheckProps.md#children)
+- [fallback](AuthCheckProps.md#fallback)
+- [requiredClaims](AuthCheckProps.md#requiredclaims)
## Properties
diff --git a/docs/reference/interfaces/ClaimCheckErrors.md b/docs/reference/interfaces/ClaimCheckErrors.md
new file mode 100644
index 00000000..55a45614
--- /dev/null
+++ b/docs/reference/interfaces/ClaimCheckErrors.md
@@ -0,0 +1,7 @@
+[ReactFire reference docs](../README.md) / ClaimCheckErrors
+
+# Interface: ClaimCheckErrors
+
+## Indexable
+
+â–ª [key: `string`]: `any`[]
diff --git a/docs/reference/interfaces/auth.ClaimsCheckProps.md b/docs/reference/interfaces/ClaimsCheckProps.md
similarity index 69%
rename from docs/reference/interfaces/auth.ClaimsCheckProps.md
rename to docs/reference/interfaces/ClaimsCheckProps.md
index 877a5694..f7bf960c 100644
--- a/docs/reference/interfaces/auth.ClaimsCheckProps.md
+++ b/docs/reference/interfaces/ClaimsCheckProps.md
@@ -1,17 +1,15 @@
-[ReactFire reference docs](../README.md) / [auth](../modules/auth.md) / ClaimsCheckProps
+[ReactFire reference docs](../README.md) / ClaimsCheckProps
# Interface: ClaimsCheckProps
-[auth](../modules/auth.md).ClaimsCheckProps
-
## Table of contents
### Properties
-- [children](auth.ClaimsCheckProps.md#children)
-- [fallback](auth.ClaimsCheckProps.md#fallback)
-- [requiredClaims](auth.ClaimsCheckProps.md#requiredclaims)
-- [user](auth.ClaimsCheckProps.md#user)
+- [children](ClaimsCheckProps.md#children)
+- [fallback](ClaimsCheckProps.md#fallback)
+- [requiredClaims](ClaimsCheckProps.md#requiredclaims)
+- [user](ClaimsCheckProps.md#user)
## Properties
diff --git a/docs/reference/interfaces/auth.ClaimsValidator.md b/docs/reference/interfaces/ClaimsValidator.md
similarity index 66%
rename from docs/reference/interfaces/auth.ClaimsValidator.md
rename to docs/reference/interfaces/ClaimsValidator.md
index 0ee7a537..a42965b3 100644
--- a/docs/reference/interfaces/auth.ClaimsValidator.md
+++ b/docs/reference/interfaces/ClaimsValidator.md
@@ -1,9 +1,7 @@
-[ReactFire reference docs](../README.md) / [auth](../modules/auth.md) / ClaimsValidator
+[ReactFire reference docs](../README.md) / ClaimsValidator
# Interface: ClaimsValidator
-[auth](../modules/auth.md).ClaimsValidator
-
## Callable
### ClaimsValidator
@@ -22,7 +20,7 @@
| Name | Type |
| :------ | :------ |
-| `errors` | {} \| [`ClaimCheckErrors`](auth.ClaimCheckErrors.md) |
+| `errors` | {} \| [`ClaimCheckErrors`](ClaimCheckErrors.md) |
| `hasRequiredClaims` | `boolean` |
#### Defined in
diff --git a/docs/reference/interfaces/useObservable.ObservableStatus.md b/docs/reference/interfaces/ObservableStatus.md
similarity index 79%
rename from docs/reference/interfaces/useObservable.ObservableStatus.md
rename to docs/reference/interfaces/ObservableStatus.md
index 33bad7c8..39e4ac8e 100644
--- a/docs/reference/interfaces/useObservable.ObservableStatus.md
+++ b/docs/reference/interfaces/ObservableStatus.md
@@ -1,9 +1,7 @@
-[ReactFire reference docs](../README.md) / [useObservable](../modules/useObservable.md) / ObservableStatus
+[ReactFire reference docs](../README.md) / ObservableStatus
# Interface: ObservableStatus
-[useObservable](../modules/useObservable.md).ObservableStatus
-
## Type parameters
| Name |
@@ -14,12 +12,12 @@
### Properties
-- [data](useObservable.ObservableStatus.md#data)
-- [error](useObservable.ObservableStatus.md#error)
-- [firstValuePromise](useObservable.ObservableStatus.md#firstvaluepromise)
-- [hasEmitted](useObservable.ObservableStatus.md#hasemitted)
-- [isComplete](useObservable.ObservableStatus.md#iscomplete)
-- [status](useObservable.ObservableStatus.md#status)
+- [data](ObservableStatus.md#data)
+- [error](ObservableStatus.md#error)
+- [firstValuePromise](ObservableStatus.md#firstvaluepromise)
+- [hasEmitted](ObservableStatus.md#hasemitted)
+- [isComplete](ObservableStatus.md#iscomplete)
+- [status](ObservableStatus.md#status)
## Properties
diff --git a/docs/reference/interfaces/index.ReactFireOptions.md b/docs/reference/interfaces/ReactFireOptions.md
similarity index 66%
rename from docs/reference/interfaces/index.ReactFireOptions.md
rename to docs/reference/interfaces/ReactFireOptions.md
index 65521be0..5ecf1f02 100644
--- a/docs/reference/interfaces/index.ReactFireOptions.md
+++ b/docs/reference/interfaces/ReactFireOptions.md
@@ -1,9 +1,7 @@
-[ReactFire reference docs](../README.md) / [index](../modules/index.md) / ReactFireOptions
+[ReactFire reference docs](../README.md) / ReactFireOptions
# Interface: ReactFireOptions
-[index](../modules/index.md).ReactFireOptions
-
## Type parameters
| Name | Type |
@@ -14,16 +12,16 @@
- **`ReactFireOptions`**
- ↳ [`SignInCheckOptionsBasic`](auth.SignInCheckOptionsBasic.md)
+ ↳ [`SignInCheckOptionsBasic`](SignInCheckOptionsBasic.md)
## Table of contents
### Properties
-- [idField](index.ReactFireOptions.md#idfield)
-- [initialData](index.ReactFireOptions.md#initialdata)
-- [startWithValue](index.ReactFireOptions.md#startwithvalue)
-- [suspense](index.ReactFireOptions.md#suspense)
+- [idField](ReactFireOptions.md#idfield)
+- [initialData](ReactFireOptions.md#initialdata)
+- [startWithValue](ReactFireOptions.md#startwithvalue)
+- [suspense](ReactFireOptions.md#suspense)
## Properties
@@ -51,7 +49,9 @@ ___
• `Optional` **startWithValue**: `any`
-**`deprecated`** use initialData instead
+**`Deprecated`**
+
+use initialData instead
#### Defined in
diff --git a/docs/reference/interfaces/SignInCheckOptionsBasic.md b/docs/reference/interfaces/SignInCheckOptionsBasic.md
new file mode 100644
index 00000000..ac45a715
--- /dev/null
+++ b/docs/reference/interfaces/SignInCheckOptionsBasic.md
@@ -0,0 +1,93 @@
+[ReactFire reference docs](../README.md) / SignInCheckOptionsBasic
+
+# Interface: SignInCheckOptionsBasic
+
+## Hierarchy
+
+- [`ReactFireOptions`](ReactFireOptions.md)<[`SigninCheckResult`](../README.md#signincheckresult)\>
+
+ ↳ **`SignInCheckOptionsBasic`**
+
+ ↳↳ [`SignInCheckOptionsClaimsObject`](SignInCheckOptionsClaimsObject.md)
+
+ ↳↳ [`SignInCheckOptionsClaimsValidator`](SignInCheckOptionsClaimsValidator.md)
+
+## Table of contents
+
+### Properties
+
+- [forceRefresh](SignInCheckOptionsBasic.md#forcerefresh)
+- [idField](SignInCheckOptionsBasic.md#idfield)
+- [initialData](SignInCheckOptionsBasic.md#initialdata)
+- [startWithValue](SignInCheckOptionsBasic.md#startwithvalue)
+- [suspense](SignInCheckOptionsBasic.md#suspense)
+
+## Properties
+
+### forceRefresh
+
+• `Optional` **forceRefresh**: `boolean`
+
+#### Defined in
+
+[src/auth.tsx:81](https://github.com/FirebaseExtended/reactfire/blob/main/src/auth.tsx#L81)
+
+___
+
+### idField
+
+• `Optional` **idField**: `string`
+
+#### Inherited from
+
+[ReactFireOptions](ReactFireOptions.md).[idField](ReactFireOptions.md#idfield)
+
+#### Defined in
+
+[src/index.ts:25](https://github.com/FirebaseExtended/reactfire/blob/main/src/index.ts#L25)
+
+___
+
+### initialData
+
+• `Optional` **initialData**: `any`
+
+#### Inherited from
+
+[ReactFireOptions](ReactFireOptions.md).[initialData](ReactFireOptions.md#initialdata)
+
+#### Defined in
+
+[src/index.ts:26](https://github.com/FirebaseExtended/reactfire/blob/main/src/index.ts#L26)
+
+___
+
+### startWithValue
+
+• `Optional` **startWithValue**: `any`
+
+**`Deprecated`**
+
+use initialData instead
+
+#### Inherited from
+
+[ReactFireOptions](ReactFireOptions.md).[startWithValue](ReactFireOptions.md#startwithvalue)
+
+#### Defined in
+
+[src/index.ts:30](https://github.com/FirebaseExtended/reactfire/blob/main/src/index.ts#L30)
+
+___
+
+### suspense
+
+• `Optional` **suspense**: `boolean`
+
+#### Inherited from
+
+[ReactFireOptions](ReactFireOptions.md).[suspense](ReactFireOptions.md#suspense)
+
+#### Defined in
+
+[src/index.ts:31](https://github.com/FirebaseExtended/reactfire/blob/main/src/index.ts#L31)
diff --git a/docs/reference/interfaces/auth.SignInCheckOptionsClaimsObject.md b/docs/reference/interfaces/SignInCheckOptionsClaimsObject.md
similarity index 50%
rename from docs/reference/interfaces/auth.SignInCheckOptionsClaimsObject.md
rename to docs/reference/interfaces/SignInCheckOptionsClaimsObject.md
index 9af8617f..2d651eb9 100644
--- a/docs/reference/interfaces/auth.SignInCheckOptionsClaimsObject.md
+++ b/docs/reference/interfaces/SignInCheckOptionsClaimsObject.md
@@ -1,12 +1,10 @@
-[ReactFire reference docs](../README.md) / [auth](../modules/auth.md) / SignInCheckOptionsClaimsObject
+[ReactFire reference docs](../README.md) / SignInCheckOptionsClaimsObject
# Interface: SignInCheckOptionsClaimsObject
-[auth](../modules/auth.md).SignInCheckOptionsClaimsObject
-
## Hierarchy
-- [`SignInCheckOptionsBasic`](auth.SignInCheckOptionsBasic.md)
+- [`SignInCheckOptionsBasic`](SignInCheckOptionsBasic.md)
↳ **`SignInCheckOptionsClaimsObject`**
@@ -14,12 +12,12 @@
### Properties
-- [forceRefresh](auth.SignInCheckOptionsClaimsObject.md#forcerefresh)
-- [idField](auth.SignInCheckOptionsClaimsObject.md#idfield)
-- [initialData](auth.SignInCheckOptionsClaimsObject.md#initialdata)
-- [requiredClaims](auth.SignInCheckOptionsClaimsObject.md#requiredclaims)
-- [startWithValue](auth.SignInCheckOptionsClaimsObject.md#startwithvalue)
-- [suspense](auth.SignInCheckOptionsClaimsObject.md#suspense)
+- [forceRefresh](SignInCheckOptionsClaimsObject.md#forcerefresh)
+- [idField](SignInCheckOptionsClaimsObject.md#idfield)
+- [initialData](SignInCheckOptionsClaimsObject.md#initialdata)
+- [requiredClaims](SignInCheckOptionsClaimsObject.md#requiredclaims)
+- [startWithValue](SignInCheckOptionsClaimsObject.md#startwithvalue)
+- [suspense](SignInCheckOptionsClaimsObject.md#suspense)
## Properties
@@ -29,7 +27,7 @@
#### Inherited from
-[SignInCheckOptionsBasic](auth.SignInCheckOptionsBasic.md).[forceRefresh](auth.SignInCheckOptionsBasic.md#forcerefresh)
+[SignInCheckOptionsBasic](SignInCheckOptionsBasic.md).[forceRefresh](SignInCheckOptionsBasic.md#forcerefresh)
#### Defined in
@@ -43,7 +41,7 @@ ___
#### Inherited from
-[SignInCheckOptionsBasic](auth.SignInCheckOptionsBasic.md).[idField](auth.SignInCheckOptionsBasic.md#idfield)
+[SignInCheckOptionsBasic](SignInCheckOptionsBasic.md).[idField](SignInCheckOptionsBasic.md#idfield)
#### Defined in
@@ -57,7 +55,7 @@ ___
#### Inherited from
-[SignInCheckOptionsBasic](auth.SignInCheckOptionsBasic.md).[initialData](auth.SignInCheckOptionsBasic.md#initialdata)
+[SignInCheckOptionsBasic](SignInCheckOptionsBasic.md).[initialData](SignInCheckOptionsBasic.md#initialdata)
#### Defined in
@@ -79,11 +77,13 @@ ___
• `Optional` **startWithValue**: `any`
-**`deprecated`** use initialData instead
+**`Deprecated`**
+
+use initialData instead
#### Inherited from
-[SignInCheckOptionsBasic](auth.SignInCheckOptionsBasic.md).[startWithValue](auth.SignInCheckOptionsBasic.md#startwithvalue)
+[SignInCheckOptionsBasic](SignInCheckOptionsBasic.md).[startWithValue](SignInCheckOptionsBasic.md#startwithvalue)
#### Defined in
@@ -97,7 +97,7 @@ ___
#### Inherited from
-[SignInCheckOptionsBasic](auth.SignInCheckOptionsBasic.md).[suspense](auth.SignInCheckOptionsBasic.md#suspense)
+[SignInCheckOptionsBasic](SignInCheckOptionsBasic.md).[suspense](SignInCheckOptionsBasic.md#suspense)
#### Defined in
diff --git a/docs/reference/interfaces/SignInCheckOptionsClaimsValidator.md b/docs/reference/interfaces/SignInCheckOptionsClaimsValidator.md
new file mode 100644
index 00000000..460270ab
--- /dev/null
+++ b/docs/reference/interfaces/SignInCheckOptionsClaimsValidator.md
@@ -0,0 +1,104 @@
+[ReactFire reference docs](../README.md) / SignInCheckOptionsClaimsValidator
+
+# Interface: SignInCheckOptionsClaimsValidator
+
+## Hierarchy
+
+- [`SignInCheckOptionsBasic`](SignInCheckOptionsBasic.md)
+
+ ↳ **`SignInCheckOptionsClaimsValidator`**
+
+## Table of contents
+
+### Properties
+
+- [forceRefresh](SignInCheckOptionsClaimsValidator.md#forcerefresh)
+- [idField](SignInCheckOptionsClaimsValidator.md#idfield)
+- [initialData](SignInCheckOptionsClaimsValidator.md#initialdata)
+- [startWithValue](SignInCheckOptionsClaimsValidator.md#startwithvalue)
+- [suspense](SignInCheckOptionsClaimsValidator.md#suspense)
+- [validateCustomClaims](SignInCheckOptionsClaimsValidator.md#validatecustomclaims)
+
+## Properties
+
+### forceRefresh
+
+• `Optional` **forceRefresh**: `boolean`
+
+#### Inherited from
+
+[SignInCheckOptionsBasic](SignInCheckOptionsBasic.md).[forceRefresh](SignInCheckOptionsBasic.md#forcerefresh)
+
+#### Defined in
+
+[src/auth.tsx:81](https://github.com/FirebaseExtended/reactfire/blob/main/src/auth.tsx#L81)
+
+___
+
+### idField
+
+• `Optional` **idField**: `string`
+
+#### Inherited from
+
+[SignInCheckOptionsBasic](SignInCheckOptionsBasic.md).[idField](SignInCheckOptionsBasic.md#idfield)
+
+#### Defined in
+
+[src/index.ts:25](https://github.com/FirebaseExtended/reactfire/blob/main/src/index.ts#L25)
+
+___
+
+### initialData
+
+• `Optional` **initialData**: `any`
+
+#### Inherited from
+
+[SignInCheckOptionsBasic](SignInCheckOptionsBasic.md).[initialData](SignInCheckOptionsBasic.md#initialdata)
+
+#### Defined in
+
+[src/index.ts:26](https://github.com/FirebaseExtended/reactfire/blob/main/src/index.ts#L26)
+
+___
+
+### startWithValue
+
+• `Optional` **startWithValue**: `any`
+
+**`Deprecated`**
+
+use initialData instead
+
+#### Inherited from
+
+[SignInCheckOptionsBasic](SignInCheckOptionsBasic.md).[startWithValue](SignInCheckOptionsBasic.md#startwithvalue)
+
+#### Defined in
+
+[src/index.ts:30](https://github.com/FirebaseExtended/reactfire/blob/main/src/index.ts#L30)
+
+___
+
+### suspense
+
+• `Optional` **suspense**: `boolean`
+
+#### Inherited from
+
+[SignInCheckOptionsBasic](SignInCheckOptionsBasic.md).[suspense](SignInCheckOptionsBasic.md#suspense)
+
+#### Defined in
+
+[src/index.ts:31](https://github.com/FirebaseExtended/reactfire/blob/main/src/index.ts#L31)
+
+___
+
+### validateCustomClaims
+
+• **validateCustomClaims**: [`ClaimsValidator`](ClaimsValidator.md)
+
+#### Defined in
+
+[src/auth.tsx:96](https://github.com/FirebaseExtended/reactfire/blob/main/src/auth.tsx#L96)
diff --git a/docs/reference/interfaces/performance.SuspensePerfProps.md b/docs/reference/interfaces/SuspensePerfProps.md
similarity index 64%
rename from docs/reference/interfaces/performance.SuspensePerfProps.md
rename to docs/reference/interfaces/SuspensePerfProps.md
index 852373db..f435b2e0 100644
--- a/docs/reference/interfaces/performance.SuspensePerfProps.md
+++ b/docs/reference/interfaces/SuspensePerfProps.md
@@ -1,16 +1,14 @@
-[ReactFire reference docs](../README.md) / [performance](../modules/performance.md) / SuspensePerfProps
+[ReactFire reference docs](../README.md) / SuspensePerfProps
# Interface: SuspensePerfProps
-[performance](../modules/performance.md).SuspensePerfProps
-
## Table of contents
### Properties
-- [children](performance.SuspensePerfProps.md#children)
-- [fallback](performance.SuspensePerfProps.md#fallback)
-- [traceId](performance.SuspensePerfProps.md#traceid)
+- [children](SuspensePerfProps.md#children)
+- [fallback](SuspensePerfProps.md#fallback)
+- [traceId](SuspensePerfProps.md#traceid)
## Properties
diff --git a/docs/reference/interfaces/auth.ClaimCheckErrors.md b/docs/reference/interfaces/auth.ClaimCheckErrors.md
deleted file mode 100644
index 227953ac..00000000
--- a/docs/reference/interfaces/auth.ClaimCheckErrors.md
+++ /dev/null
@@ -1,9 +0,0 @@
-[ReactFire reference docs](../README.md) / [auth](../modules/auth.md) / ClaimCheckErrors
-
-# Interface: ClaimCheckErrors
-
-[auth](../modules/auth.md).ClaimCheckErrors
-
-## Indexable
-
-â–ª [key: `string`]: `any`[]
diff --git a/docs/reference/interfaces/auth.SignInCheckOptionsBasic.md b/docs/reference/interfaces/auth.SignInCheckOptionsBasic.md
deleted file mode 100644
index 15b5f8b8..00000000
--- a/docs/reference/interfaces/auth.SignInCheckOptionsBasic.md
+++ /dev/null
@@ -1,93 +0,0 @@
-[ReactFire reference docs](../README.md) / [auth](../modules/auth.md) / SignInCheckOptionsBasic
-
-# Interface: SignInCheckOptionsBasic
-
-[auth](../modules/auth.md).SignInCheckOptionsBasic
-
-## Hierarchy
-
-- [`ReactFireOptions`](index.ReactFireOptions.md)<[`SigninCheckResult`](../modules/auth.md#signincheckresult)\>
-
- ↳ **`SignInCheckOptionsBasic`**
-
- ↳↳ [`SignInCheckOptionsClaimsObject`](auth.SignInCheckOptionsClaimsObject.md)
-
- ↳↳ [`SignInCheckOptionsClaimsValidator`](auth.SignInCheckOptionsClaimsValidator.md)
-
-## Table of contents
-
-### Properties
-
-- [forceRefresh](auth.SignInCheckOptionsBasic.md#forcerefresh)
-- [idField](auth.SignInCheckOptionsBasic.md#idfield)
-- [initialData](auth.SignInCheckOptionsBasic.md#initialdata)
-- [startWithValue](auth.SignInCheckOptionsBasic.md#startwithvalue)
-- [suspense](auth.SignInCheckOptionsBasic.md#suspense)
-
-## Properties
-
-### forceRefresh
-
-• `Optional` **forceRefresh**: `boolean`
-
-#### Defined in
-
-[src/auth.tsx:81](https://github.com/FirebaseExtended/reactfire/blob/main/src/auth.tsx#L81)
-
-___
-
-### idField
-
-• `Optional` **idField**: `string`
-
-#### Inherited from
-
-[ReactFireOptions](index.ReactFireOptions.md).[idField](index.ReactFireOptions.md#idfield)
-
-#### Defined in
-
-[src/index.ts:25](https://github.com/FirebaseExtended/reactfire/blob/main/src/index.ts#L25)
-
-___
-
-### initialData
-
-• `Optional` **initialData**: `any`
-
-#### Inherited from
-
-[ReactFireOptions](index.ReactFireOptions.md).[initialData](index.ReactFireOptions.md#initialdata)
-
-#### Defined in
-
-[src/index.ts:26](https://github.com/FirebaseExtended/reactfire/blob/main/src/index.ts#L26)
-
-___
-
-### startWithValue
-
-• `Optional` **startWithValue**: `any`
-
-**`deprecated`** use initialData instead
-
-#### Inherited from
-
-[ReactFireOptions](index.ReactFireOptions.md).[startWithValue](index.ReactFireOptions.md#startwithvalue)
-
-#### Defined in
-
-[src/index.ts:30](https://github.com/FirebaseExtended/reactfire/blob/main/src/index.ts#L30)
-
-___
-
-### suspense
-
-• `Optional` **suspense**: `boolean`
-
-#### Inherited from
-
-[ReactFireOptions](index.ReactFireOptions.md).[suspense](index.ReactFireOptions.md#suspense)
-
-#### Defined in
-
-[src/index.ts:31](https://github.com/FirebaseExtended/reactfire/blob/main/src/index.ts#L31)
diff --git a/docs/reference/interfaces/auth.SignInCheckOptionsClaimsValidator.md b/docs/reference/interfaces/auth.SignInCheckOptionsClaimsValidator.md
deleted file mode 100644
index fd15382d..00000000
--- a/docs/reference/interfaces/auth.SignInCheckOptionsClaimsValidator.md
+++ /dev/null
@@ -1,104 +0,0 @@
-[ReactFire reference docs](../README.md) / [auth](../modules/auth.md) / SignInCheckOptionsClaimsValidator
-
-# Interface: SignInCheckOptionsClaimsValidator
-
-[auth](../modules/auth.md).SignInCheckOptionsClaimsValidator
-
-## Hierarchy
-
-- [`SignInCheckOptionsBasic`](auth.SignInCheckOptionsBasic.md)
-
- ↳ **`SignInCheckOptionsClaimsValidator`**
-
-## Table of contents
-
-### Properties
-
-- [forceRefresh](auth.SignInCheckOptionsClaimsValidator.md#forcerefresh)
-- [idField](auth.SignInCheckOptionsClaimsValidator.md#idfield)
-- [initialData](auth.SignInCheckOptionsClaimsValidator.md#initialdata)
-- [startWithValue](auth.SignInCheckOptionsClaimsValidator.md#startwithvalue)
-- [suspense](auth.SignInCheckOptionsClaimsValidator.md#suspense)
-- [validateCustomClaims](auth.SignInCheckOptionsClaimsValidator.md#validatecustomclaims)
-
-## Properties
-
-### forceRefresh
-
-• `Optional` **forceRefresh**: `boolean`
-
-#### Inherited from
-
-[SignInCheckOptionsBasic](auth.SignInCheckOptionsBasic.md).[forceRefresh](auth.SignInCheckOptionsBasic.md#forcerefresh)
-
-#### Defined in
-
-[src/auth.tsx:81](https://github.com/FirebaseExtended/reactfire/blob/main/src/auth.tsx#L81)
-
-___
-
-### idField
-
-• `Optional` **idField**: `string`
-
-#### Inherited from
-
-[SignInCheckOptionsBasic](auth.SignInCheckOptionsBasic.md).[idField](auth.SignInCheckOptionsBasic.md#idfield)
-
-#### Defined in
-
-[src/index.ts:25](https://github.com/FirebaseExtended/reactfire/blob/main/src/index.ts#L25)
-
-___
-
-### initialData
-
-• `Optional` **initialData**: `any`
-
-#### Inherited from
-
-[SignInCheckOptionsBasic](auth.SignInCheckOptionsBasic.md).[initialData](auth.SignInCheckOptionsBasic.md#initialdata)
-
-#### Defined in
-
-[src/index.ts:26](https://github.com/FirebaseExtended/reactfire/blob/main/src/index.ts#L26)
-
-___
-
-### startWithValue
-
-• `Optional` **startWithValue**: `any`
-
-**`deprecated`** use initialData instead
-
-#### Inherited from
-
-[SignInCheckOptionsBasic](auth.SignInCheckOptionsBasic.md).[startWithValue](auth.SignInCheckOptionsBasic.md#startwithvalue)
-
-#### Defined in
-
-[src/index.ts:30](https://github.com/FirebaseExtended/reactfire/blob/main/src/index.ts#L30)
-
-___
-
-### suspense
-
-• `Optional` **suspense**: `boolean`
-
-#### Inherited from
-
-[SignInCheckOptionsBasic](auth.SignInCheckOptionsBasic.md).[suspense](auth.SignInCheckOptionsBasic.md#suspense)
-
-#### Defined in
-
-[src/index.ts:31](https://github.com/FirebaseExtended/reactfire/blob/main/src/index.ts#L31)
-
-___
-
-### validateCustomClaims
-
-• **validateCustomClaims**: [`ClaimsValidator`](auth.ClaimsValidator.md)
-
-#### Defined in
-
-[src/auth.tsx:96](https://github.com/FirebaseExtended/reactfire/blob/main/src/auth.tsx#L96)
diff --git a/docs/reference/modules/SuspenseSubject.md b/docs/reference/modules/SuspenseSubject.md
deleted file mode 100644
index b0b355b9..00000000
--- a/docs/reference/modules/SuspenseSubject.md
+++ /dev/null
@@ -1,9 +0,0 @@
-[ReactFire reference docs](../README.md) / SuspenseSubject
-
-# Module: SuspenseSubject
-
-## Table of contents
-
-### Classes
-
-- [SuspenseSubject](../classes/SuspenseSubject.SuspenseSubject-1.md)
diff --git a/docs/reference/modules/auth.md b/docs/reference/modules/auth.md
deleted file mode 100644
index bbf545b5..00000000
--- a/docs/reference/modules/auth.md
+++ /dev/null
@@ -1,210 +0,0 @@
-[ReactFire reference docs](../README.md) / auth
-
-# Module: auth
-
-## Table of contents
-
-### Interfaces
-
-- [AuthCheckProps](../interfaces/auth.AuthCheckProps.md)
-- [ClaimCheckErrors](../interfaces/auth.ClaimCheckErrors.md)
-- [ClaimsCheckProps](../interfaces/auth.ClaimsCheckProps.md)
-- [ClaimsValidator](../interfaces/auth.ClaimsValidator.md)
-- [SignInCheckOptionsBasic](../interfaces/auth.SignInCheckOptionsBasic.md)
-- [SignInCheckOptionsClaimsObject](../interfaces/auth.SignInCheckOptionsClaimsObject.md)
-- [SignInCheckOptionsClaimsValidator](../interfaces/auth.SignInCheckOptionsClaimsValidator.md)
-
-### Type aliases
-
-- [SigninCheckResult](auth.md#signincheckresult)
-
-### Functions
-
-- [AuthCheck](auth.md#authcheck)
-- [ClaimsCheck](auth.md#claimscheck)
-- [preloadUser](auth.md#preloaduser)
-- [useIdTokenResult](auth.md#useidtokenresult)
-- [useSigninCheck](auth.md#usesignincheck)
-- [useUser](auth.md#useuser)
-
-## Type aliases
-
-### SigninCheckResult
-
-Ƭ **SigninCheckResult**: { `errors`: {} ; `hasRequiredClaims`: ``false`` ; `signedIn`: ``false`` ; `user`: ``null`` } \| { `errors`: [`ClaimCheckErrors`](../interfaces/auth.ClaimCheckErrors.md) ; `hasRequiredClaims`: `boolean` ; `signedIn`: ``true`` ; `user`: `User` }
-
-#### Defined in
-
-[src/auth.tsx:66](https://github.com/FirebaseExtended/reactfire/blob/main/src/auth.tsx#L66)
-
-## Functions
-
-### AuthCheck
-
-â–¸ **AuthCheck**(`__namedParameters`): `JSX.Element`
-
-**`deprecated`** Use `useSignInCheck` instead
-
-Conditionally render children based on signed-in status and [custom claims](https://firebase.google.com/docs/auth/admin/custom-claims).
-
-Meant for Concurrent mode only (``). [More detail](https://github.com/FirebaseExtended/reactfire/issues/325#issuecomment-827654376).
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `__namedParameters` | [`AuthCheckProps`](../interfaces/auth.AuthCheckProps.md) |
-
-#### Returns
-
-`JSX.Element`
-
-#### Defined in
-
-[src/auth.tsx:247](https://github.com/FirebaseExtended/reactfire/blob/main/src/auth.tsx#L247)
-
-___
-
-### ClaimsCheck
-
-â–¸ **ClaimsCheck**(`__namedParameters`): `Element`
-
-**`deprecated`** Use `useSignInCheck` instead
-
-Conditionally render children based on [custom claims](https://firebase.google.com/docs/auth/admin/custom-claims).
-
-Meant for Concurrent mode only (``). [More detail](https://github.com/FirebaseExtended/reactfire/issues/325#issuecomment-827654376).
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `__namedParameters` | [`ClaimsCheckProps`](../interfaces/auth.ClaimsCheckProps.md) |
-
-#### Returns
-
-`Element`
-
-#### Defined in
-
-[src/auth.tsx:210](https://github.com/FirebaseExtended/reactfire/blob/main/src/auth.tsx#L210)
-
-___
-
-### preloadUser
-
-â–¸ **preloadUser**(`authResolver`): `Promise`<`undefined` \| ``null`` \| `User`\>
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `authResolver` | () => `Promise`<`Auth`\> |
-
-#### Returns
-
-`Promise`<`undefined` \| ``null`` \| `User`\>
-
-#### Defined in
-
-[src/auth.tsx:11](https://github.com/FirebaseExtended/reactfire/blob/main/src/auth.tsx#L11)
-
-___
-
-### useIdTokenResult
-
-â–¸ **useIdTokenResult**(`user`, `forceRefresh?`, `options?`): [`ObservableStatus`](../interfaces/useObservable.ObservableStatus.md)<`IdTokenResult`\>
-
-#### Parameters
-
-| Name | Type | Default value |
-| :------ | :------ | :------ |
-| `user` | `User` | `undefined` |
-| `forceRefresh` | `boolean` | `false` |
-| `options?` | [`ReactFireOptions`](../interfaces/index.ReactFireOptions.md)<`IdTokenResult`\> | `undefined` |
-
-#### Returns
-
-[`ObservableStatus`](../interfaces/useObservable.ObservableStatus.md)<`IdTokenResult`\>
-
-#### Defined in
-
-[src/auth.tsx:38](https://github.com/FirebaseExtended/reactfire/blob/main/src/auth.tsx#L38)
-
-___
-
-### useSigninCheck
-
-â–¸ **useSigninCheck**(`options?`): [`ObservableStatus`](../interfaces/useObservable.ObservableStatus.md)<[`SigninCheckResult`](auth.md#signincheckresult)\>
-
-Subscribe to the signed-in status of a user.
-
-```ts
-const { status, data:signInCheckResult } = useSigninCheck();
-
-if (status === 'loading') {
- return }
-
-if (signInCheckResult.signedIn === true) {
- return
-} else {
- return
-}
-```
-
-Optionally check [custom claims](https://firebase.google.com/docs/auth/admin/custom-claims) of a user as well.
-
-```ts
-// pass in an object describing the custom claims a user must have
-const {status, data: signInCheckResult} = useSignInCheck({requiredClaims: {admin: true}});
-
-// pass in a custom claims validator function
-const {status, data: signInCheckResult} = useSignInCheck({validateCustomClaims: (userClaims) => {
- // custom validation logic...
-}});
-
-// You can optionally force-refresh the token
-const {status, data: signInCheckResult} = useSignInCheck({forceRefresh: true, requiredClaims: {admin: true}});
-```
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `options?` | [`SignInCheckOptionsBasic`](../interfaces/auth.SignInCheckOptionsBasic.md) \| [`SignInCheckOptionsClaimsObject`](../interfaces/auth.SignInCheckOptionsClaimsObject.md) \| [`SignInCheckOptionsClaimsValidator`](../interfaces/auth.SignInCheckOptionsClaimsValidator.md) |
-
-#### Returns
-
-[`ObservableStatus`](../interfaces/useObservable.ObservableStatus.md)<[`SigninCheckResult`](auth.md#signincheckresult)\>
-
-#### Defined in
-
-[src/auth.tsx:131](https://github.com/FirebaseExtended/reactfire/blob/main/src/auth.tsx#L131)
-
-___
-
-### useUser
-
-â–¸ **useUser**<`T`\>(`options?`): [`ObservableStatus`](../interfaces/useObservable.ObservableStatus.md)<`User` \| ``null``\>
-
-Subscribe to Firebase auth state changes, including token refresh
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `T` | `unknown` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `options?` | [`ReactFireOptions`](../interfaces/index.ReactFireOptions.md)<`T`\> |
-
-#### Returns
-
-[`ObservableStatus`](../interfaces/useObservable.ObservableStatus.md)<`User` \| ``null``\>
-
-#### Defined in
-
-[src/auth.tsx:22](https://github.com/FirebaseExtended/reactfire/blob/main/src/auth.tsx#L22)
diff --git a/docs/reference/modules/database.md b/docs/reference/modules/database.md
deleted file mode 100644
index ea520325..00000000
--- a/docs/reference/modules/database.md
+++ /dev/null
@@ -1,124 +0,0 @@
-[ReactFire reference docs](../README.md) / database
-
-# Module: database
-
-## Table of contents
-
-### Functions
-
-- [useDatabaseList](database.md#usedatabaselist)
-- [useDatabaseListData](database.md#usedatabaselistdata)
-- [useDatabaseObject](database.md#usedatabaseobject)
-- [useDatabaseObjectData](database.md#usedatabaseobjectdata)
-
-## Functions
-
-### useDatabaseList
-
-â–¸ **useDatabaseList**<`T`\>(`ref`, `options?`): [`ObservableStatus`](../interfaces/useObservable.ObservableStatus.md)<`QueryChange`[] \| `T`[]\>
-
-Subscribe to a Realtime Database list
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `T` | { [key: string]: `unknown`; } |
-
-#### Parameters
-
-| Name | Type | Description |
-| :------ | :------ | :------ |
-| `ref` | `DatabaseReference` \| `DatabaseQuery` | Reference to the DB List you want to listen to |
-| `options?` | [`ReactFireOptions`](../interfaces/index.ReactFireOptions.md)<`T`[]\> | |
-
-#### Returns
-
-[`ObservableStatus`](../interfaces/useObservable.ObservableStatus.md)<`QueryChange`[] \| `T`[]\>
-
-#### Defined in
-
-[src/database.tsx:48](https://github.com/FirebaseExtended/reactfire/blob/main/src/database.tsx#L48)
-
-___
-
-### useDatabaseListData
-
-â–¸ **useDatabaseListData**<`T`\>(`ref`, `options?`): [`ObservableStatus`](../interfaces/useObservable.ObservableStatus.md)<`T`[] \| ``null``\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `T` | { [key: string]: `unknown`; } |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `ref` | `DatabaseReference` \| `DatabaseQuery` |
-| `options?` | [`ReactFireOptions`](../interfaces/index.ReactFireOptions.md)<`T`[]\> |
-
-#### Returns
-
-[`ObservableStatus`](../interfaces/useObservable.ObservableStatus.md)<`T`[] \| ``null``\>
-
-#### Defined in
-
-[src/database.tsx:58](https://github.com/FirebaseExtended/reactfire/blob/main/src/database.tsx#L58)
-
-___
-
-### useDatabaseObject
-
-â–¸ **useDatabaseObject**<`T`\>(`ref`, `options?`): [`ObservableStatus`](../interfaces/useObservable.ObservableStatus.md)<`QueryChange` \| `T`\>
-
-Subscribe to a Realtime Database object
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `T` | `unknown` |
-
-#### Parameters
-
-| Name | Type | Description |
-| :------ | :------ | :------ |
-| `ref` | `DatabaseReference` | Reference to the DB object you want to listen to |
-| `options?` | [`ReactFireOptions`](../interfaces/index.ReactFireOptions.md)<`T`\> | |
-
-#### Returns
-
-[`ObservableStatus`](../interfaces/useObservable.ObservableStatus.md)<`QueryChange` \| `T`\>
-
-#### Defined in
-
-[src/database.tsx:27](https://github.com/FirebaseExtended/reactfire/blob/main/src/database.tsx#L27)
-
-___
-
-### useDatabaseObjectData
-
-â–¸ **useDatabaseObjectData**<`T`\>(`ref`, `options?`): [`ObservableStatus`](../interfaces/useObservable.ObservableStatus.md)<`T`\>
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `T` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `ref` | `DatabaseReference` |
-| `options?` | [`ReactFireOptions`](../interfaces/index.ReactFireOptions.md)<`T`\> |
-
-#### Returns
-
-[`ObservableStatus`](../interfaces/useObservable.ObservableStatus.md)<`T`\>
-
-#### Defined in
-
-[src/database.tsx:34](https://github.com/FirebaseExtended/reactfire/blob/main/src/database.tsx#L34)
diff --git a/docs/reference/modules/firebaseApp.md b/docs/reference/modules/firebaseApp.md
deleted file mode 100644
index 36401679..00000000
--- a/docs/reference/modules/firebaseApp.md
+++ /dev/null
@@ -1,94 +0,0 @@
-[ReactFire reference docs](../README.md) / firebaseApp
-
-# Module: firebaseApp
-
-## Table of contents
-
-### Variables
-
-- [version](firebaseApp.md#version)
-
-### Functions
-
-- [FirebaseAppProvider](firebaseApp.md#firebaseappprovider)
-- [useFirebaseApp](firebaseApp.md#usefirebaseapp)
-- [useIsSuspenseEnabled](firebaseApp.md#useissuspenseenabled)
-- [useSuspenseEnabledFromConfigAndContext](firebaseApp.md#usesuspenseenabledfromconfigandcontext)
-
-## Variables
-
-### version
-
-• `Const` **version**: `any`
-
-#### Defined in
-
-[src/firebaseApp.tsx:20](https://github.com/FirebaseExtended/reactfire/blob/main/src/firebaseApp.tsx#L20)
-
-## Functions
-
-### FirebaseAppProvider
-
-â–¸ **FirebaseAppProvider**(`props`): `Element`
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `props` | `React.PropsWithChildren`<`FirebaseAppProviderProps`\> |
-
-#### Returns
-
-`Element`
-
-#### Defined in
-
-[src/firebaseApp.tsx:24](https://github.com/FirebaseExtended/reactfire/blob/main/src/firebaseApp.tsx#L24)
-
-___
-
-### useFirebaseApp
-
-â–¸ **useFirebaseApp**(): `FirebaseApp`
-
-#### Returns
-
-`FirebaseApp`
-
-#### Defined in
-
-[src/firebaseApp.tsx:78](https://github.com/FirebaseExtended/reactfire/blob/main/src/firebaseApp.tsx#L78)
-
-___
-
-### useIsSuspenseEnabled
-
-â–¸ **useIsSuspenseEnabled**(): `boolean`
-
-#### Returns
-
-`boolean`
-
-#### Defined in
-
-[src/firebaseApp.tsx:60](https://github.com/FirebaseExtended/reactfire/blob/main/src/firebaseApp.tsx#L60)
-
-___
-
-### useSuspenseEnabledFromConfigAndContext
-
-â–¸ **useSuspenseEnabledFromConfigAndContext**(`suspenseFromConfig?`): `boolean`
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `suspenseFromConfig?` | `boolean` |
-
-#### Returns
-
-`boolean`
-
-#### Defined in
-
-[src/firebaseApp.tsx:67](https://github.com/FirebaseExtended/reactfire/blob/main/src/firebaseApp.tsx#L67)
diff --git a/docs/reference/modules/firestore.md b/docs/reference/modules/firestore.md
deleted file mode 100644
index bf3a9e23..00000000
--- a/docs/reference/modules/firestore.md
+++ /dev/null
@@ -1,215 +0,0 @@
-[ReactFire reference docs](../README.md) / firestore
-
-# Module: firestore
-
-## Table of contents
-
-### Functions
-
-- [preloadFirestoreDoc](firestore.md#preloadfirestoredoc)
-- [useFirestoreCollection](firestore.md#usefirestorecollection)
-- [useFirestoreCollectionData](firestore.md#usefirestorecollectiondata)
-- [useFirestoreDoc](firestore.md#usefirestoredoc)
-- [useFirestoreDocData](firestore.md#usefirestoredocdata)
-- [useFirestoreDocDataOnce](firestore.md#usefirestoredocdataonce)
-- [useFirestoreDocOnce](firestore.md#usefirestoredoconce)
-
-## Functions
-
-### preloadFirestoreDoc
-
-â–¸ **preloadFirestoreDoc**(`refProvider`): `Promise`<[`SuspenseSubject`](../classes/SuspenseSubject.SuspenseSubject-1.md)<`DocumentSnapshot`<`DocumentData`\>\>\>
-
-Preload a subscription to a Firestore document reference.
-
-Use this to warm up `useFirestoreDoc` for a specific document
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `refProvider` | () => `Promise`<`DocumentReference`\> |
-
-#### Returns
-
-`Promise`<[`SuspenseSubject`](../classes/SuspenseSubject.SuspenseSubject-1.md)<`DocumentSnapshot`<`DocumentData`\>\>\>
-
-#### Defined in
-
-[src/firestore.tsx:28](https://github.com/FirebaseExtended/reactfire/blob/main/src/firestore.tsx#L28)
-
-___
-
-### useFirestoreCollection
-
-â–¸ **useFirestoreCollection**<`T`\>(`query`, `options?`): [`ObservableStatus`](../interfaces/useObservable.ObservableStatus.md)<`QuerySnapshot`<`T`\>\>
-
-Subscribe to a Firestore collection
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `T` | `DocumentData` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `query` | `FirestoreQuery`<`T`\> |
-| `options?` | [`ReactFireOptions`](../interfaces/index.ReactFireOptions.md)<`T`[]\> |
-
-#### Returns
-
-[`ObservableStatus`](../interfaces/useObservable.ObservableStatus.md)<`QuerySnapshot`<`T`\>\>
-
-#### Defined in
-
-[src/firestore.tsx:86](https://github.com/FirebaseExtended/reactfire/blob/main/src/firestore.tsx#L86)
-
-___
-
-### useFirestoreCollectionData
-
-â–¸ **useFirestoreCollectionData**<`T`\>(`query`, `options?`): [`ObservableStatus`](../interfaces/useObservable.ObservableStatus.md)<`T`[]\>
-
-Subscribe to a Firestore collection and unwrap the snapshot into an array.
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `T` | `DocumentData` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `query` | `FirestoreQuery`<`T`\> |
-| `options?` | [`ReactFireOptions`](../interfaces/index.ReactFireOptions.md)<`T`[]\> |
-
-#### Returns
-
-[`ObservableStatus`](../interfaces/useObservable.ObservableStatus.md)<`T`[]\>
-
-#### Defined in
-
-[src/firestore.tsx:96](https://github.com/FirebaseExtended/reactfire/blob/main/src/firestore.tsx#L96)
-
-___
-
-### useFirestoreDoc
-
-â–¸ **useFirestoreDoc**<`T`\>(`ref`, `options?`): [`ObservableStatus`](../interfaces/useObservable.ObservableStatus.md)<`DocumentSnapshot`<`T`\>\>
-
-Suscribe to Firestore Document changes
-
-You can preload data for this hook by calling `preloadFirestoreDoc`
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `T` | `DocumentData` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `ref` | `DocumentReference`<`T`\> |
-| `options?` | [`ReactFireOptions`](../interfaces/index.ReactFireOptions.md)<`T`\> |
-
-#### Returns
-
-[`ObservableStatus`](../interfaces/useObservable.ObservableStatus.md)<`DocumentSnapshot`<`T`\>\>
-
-#### Defined in
-
-[src/firestore.tsx:42](https://github.com/FirebaseExtended/reactfire/blob/main/src/firestore.tsx#L42)
-
-___
-
-### useFirestoreDocData
-
-â–¸ **useFirestoreDocData**<`T`\>(`ref`, `options?`): [`ObservableStatus`](../interfaces/useObservable.ObservableStatus.md)<`T`\>
-
-Suscribe to Firestore Document changes and unwrap the document into a plain object
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `T` | `unknown` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `ref` | `DocumentReference`<`T`\> |
-| `options?` | [`ReactFireOptions`](../interfaces/index.ReactFireOptions.md)<`T`\> |
-
-#### Returns
-
-[`ObservableStatus`](../interfaces/useObservable.ObservableStatus.md)<`T`\>
-
-#### Defined in
-
-[src/firestore.tsx:62](https://github.com/FirebaseExtended/reactfire/blob/main/src/firestore.tsx#L62)
-
-___
-
-### useFirestoreDocDataOnce
-
-â–¸ **useFirestoreDocDataOnce**<`T`\>(`ref`, `options?`): [`ObservableStatus`](../interfaces/useObservable.ObservableStatus.md)<`T`\>
-
-Get a Firestore document, unwrap the document into a plain object, and don't subscribe to changes
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `T` | `unknown` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `ref` | `DocumentReference`<`T`\> |
-| `options?` | [`ReactFireOptions`](../interfaces/index.ReactFireOptions.md)<`T`\> |
-
-#### Returns
-
-[`ObservableStatus`](../interfaces/useObservable.ObservableStatus.md)<`T`\>
-
-#### Defined in
-
-[src/firestore.tsx:74](https://github.com/FirebaseExtended/reactfire/blob/main/src/firestore.tsx#L74)
-
-___
-
-### useFirestoreDocOnce
-
-â–¸ **useFirestoreDocOnce**<`T`\>(`ref`, `options?`): [`ObservableStatus`](../interfaces/useObservable.ObservableStatus.md)<`DocumentSnapshot`<`T`\>\>
-
-Get a firestore document and don't subscribe to changes
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `T` | `DocumentData` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `ref` | `DocumentReference`<`T`\> |
-| `options?` | [`ReactFireOptions`](../interfaces/index.ReactFireOptions.md)<`T`\> |
-
-#### Returns
-
-[`ObservableStatus`](../interfaces/useObservable.ObservableStatus.md)<`DocumentSnapshot`<`T`\>\>
-
-#### Defined in
-
-[src/firestore.tsx:52](https://github.com/FirebaseExtended/reactfire/blob/main/src/firestore.tsx#L52)
diff --git a/docs/reference/modules/functions.md b/docs/reference/modules/functions.md
deleted file mode 100644
index 079f5fe7..00000000
--- a/docs/reference/modules/functions.md
+++ /dev/null
@@ -1,39 +0,0 @@
-[ReactFire reference docs](../README.md) / functions
-
-# Module: functions
-
-## Table of contents
-
-### Functions
-
-- [useCallableFunctionResponse](functions.md#usecallablefunctionresponse)
-
-## Functions
-
-### useCallableFunctionResponse
-
-â–¸ **useCallableFunctionResponse**<`RequestData`, `ResponseData`\>(`functionName`, `options?`): [`ObservableStatus`](../interfaces/useObservable.ObservableStatus.md)<`ResponseData`\>
-
-Calls a callable function.
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `RequestData` |
-| `ResponseData` |
-
-#### Parameters
-
-| Name | Type | Description |
-| :------ | :------ | :------ |
-| `functionName` | `string` | The name of the function to call |
-| `options?` | [`ReactFireOptions`](../interfaces/index.ReactFireOptions.md)<`ResponseData`\> & { `data?`: `RequestData` ; `httpsCallableOptions?`: `HttpsCallableOptions` } | |
-
-#### Returns
-
-[`ObservableStatus`](../interfaces/useObservable.ObservableStatus.md)<`ResponseData`\>
-
-#### Defined in
-
-[src/functions.tsx:13](https://github.com/FirebaseExtended/reactfire/blob/main/src/functions.tsx#L13)
diff --git a/docs/reference/modules/index.md b/docs/reference/modules/index.md
deleted file mode 100644
index 04fc3d8b..00000000
--- a/docs/reference/modules/index.md
+++ /dev/null
@@ -1,665 +0,0 @@
-[ReactFire reference docs](../README.md) / index
-
-# Module: index
-
-## Table of contents
-
-### References
-
-- [AnalyticsProvider](index.md#analyticsprovider)
-- [AnalyticsSdkContext](index.md#analyticssdkcontext)
-- [AppCheckProvider](index.md#appcheckprovider)
-- [AppCheckSdkContext](index.md#appchecksdkcontext)
-- [AuthCheck](index.md#authcheck)
-- [AuthCheckProps](index.md#authcheckprops)
-- [AuthProvider](index.md#authprovider)
-- [AuthSdkContext](index.md#authsdkcontext)
-- [ClaimCheckErrors](index.md#claimcheckerrors)
-- [ClaimsCheck](index.md#claimscheck)
-- [ClaimsCheckProps](index.md#claimscheckprops)
-- [ClaimsValidator](index.md#claimsvalidator)
-- [DatabaseProvider](index.md#databaseprovider)
-- [DatabaseSdkContext](index.md#databasesdkcontext)
-- [FirebaseAppProvider](index.md#firebaseappprovider)
-- [FirestoreProvider](index.md#firestoreprovider)
-- [FirestoreSdkContext](index.md#firestoresdkcontext)
-- [FunctionsProvider](index.md#functionsprovider)
-- [FunctionsSdkContext](index.md#functionssdkcontext)
-- [ObservableStatus](index.md#observablestatus)
-- [PerformanceProvider](index.md#performanceprovider)
-- [PerformanceSdkContext](index.md#performancesdkcontext)
-- [RemoteConfigProvider](index.md#remoteconfigprovider)
-- [RemoteConfigSdkContext](index.md#remoteconfigsdkcontext)
-- [SignInCheckOptionsBasic](index.md#signincheckoptionsbasic)
-- [SignInCheckOptionsClaimsObject](index.md#signincheckoptionsclaimsobject)
-- [SignInCheckOptionsClaimsValidator](index.md#signincheckoptionsclaimsvalidator)
-- [SigninCheckResult](index.md#signincheckresult)
-- [StorageImage](index.md#storageimage)
-- [StorageProvider](index.md#storageprovider)
-- [StorageSdkContext](index.md#storagesdkcontext)
-- [SuspensePerfProps](index.md#suspenseperfprops)
-- [SuspenseWithPerf](index.md#suspensewithperf)
-- [preloadFirestoreDoc](index.md#preloadfirestoredoc)
-- [preloadObservable](index.md#preloadobservable)
-- [preloadUser](index.md#preloaduser)
-- [useAnalytics](index.md#useanalytics)
-- [useAppCheck](index.md#useappcheck)
-- [useAuth](index.md#useauth)
-- [useCallableFunctionResponse](index.md#usecallablefunctionresponse)
-- [useDatabase](index.md#usedatabase)
-- [useDatabaseList](index.md#usedatabaselist)
-- [useDatabaseListData](index.md#usedatabaselistdata)
-- [useDatabaseObject](index.md#usedatabaseobject)
-- [useDatabaseObjectData](index.md#usedatabaseobjectdata)
-- [useFirebaseApp](index.md#usefirebaseapp)
-- [useFirestore](index.md#usefirestore)
-- [useFirestoreCollection](index.md#usefirestorecollection)
-- [useFirestoreCollectionData](index.md#usefirestorecollectiondata)
-- [useFirestoreDoc](index.md#usefirestoredoc)
-- [useFirestoreDocData](index.md#usefirestoredocdata)
-- [useFirestoreDocDataOnce](index.md#usefirestoredocdataonce)
-- [useFirestoreDocOnce](index.md#usefirestoredoconce)
-- [useFunctions](index.md#usefunctions)
-- [useIdTokenResult](index.md#useidtokenresult)
-- [useInitAnalytics](index.md#useinitanalytics)
-- [useInitAppCheck](index.md#useinitappcheck)
-- [useInitAuth](index.md#useinitauth)
-- [useInitDatabase](index.md#useinitdatabase)
-- [useInitFirestore](index.md#useinitfirestore)
-- [useInitFunctions](index.md#useinitfunctions)
-- [useInitPerformance](index.md#useinitperformance)
-- [useInitRemoteConfig](index.md#useinitremoteconfig)
-- [useInitStorage](index.md#useinitstorage)
-- [useIsSuspenseEnabled](index.md#useissuspenseenabled)
-- [useObservable](index.md#useobservable)
-- [usePerformance](index.md#useperformance)
-- [useRemoteConfig](index.md#useremoteconfig)
-- [useRemoteConfigAll](index.md#useremoteconfigall)
-- [useRemoteConfigBoolean](index.md#useremoteconfigboolean)
-- [useRemoteConfigNumber](index.md#useremoteconfignumber)
-- [useRemoteConfigString](index.md#useremoteconfigstring)
-- [useRemoteConfigValue](index.md#useremoteconfigvalue)
-- [useSigninCheck](index.md#usesignincheck)
-- [useStorage](index.md#usestorage)
-- [useStorageDownloadURL](index.md#usestoragedownloadurl)
-- [useStorageTask](index.md#usestoragetask)
-- [useSuspenseEnabledFromConfigAndContext](index.md#usesuspenseenabledfromconfigandcontext)
-- [useUser](index.md#useuser)
-- [version](index.md#version)
-
-### Classes
-
-- [ReactFireError](../classes/index.ReactFireError.md)
-
-### Interfaces
-
-- [ReactFireOptions](../interfaces/index.ReactFireOptions.md)
-
-### Type aliases
-
-- [ReactFireGlobals](index.md#reactfireglobals)
-
-### Functions
-
-- [checkIdField](index.md#checkidfield)
-- [checkOptions](index.md#checkoptions)
-- [checkinitialData](index.md#checkinitialdata)
-
-## References
-
-### AnalyticsProvider
-
-Re-exports: [AnalyticsProvider](sdk.md#analyticsprovider)
-
-___
-
-### AnalyticsSdkContext
-
-Re-exports: [AnalyticsSdkContext](sdk.md#analyticssdkcontext)
-
-___
-
-### AppCheckProvider
-
-Re-exports: [AppCheckProvider](sdk.md#appcheckprovider)
-
-___
-
-### AppCheckSdkContext
-
-Re-exports: [AppCheckSdkContext](sdk.md#appchecksdkcontext)
-
-___
-
-### AuthCheck
-
-Re-exports: [AuthCheck](auth.md#authcheck)
-
-___
-
-### AuthCheckProps
-
-Re-exports: [AuthCheckProps](../interfaces/auth.AuthCheckProps.md)
-
-___
-
-### AuthProvider
-
-Re-exports: [AuthProvider](sdk.md#authprovider)
-
-___
-
-### AuthSdkContext
-
-Re-exports: [AuthSdkContext](sdk.md#authsdkcontext)
-
-___
-
-### ClaimCheckErrors
-
-Re-exports: [ClaimCheckErrors](../interfaces/auth.ClaimCheckErrors.md)
-
-___
-
-### ClaimsCheck
-
-Re-exports: [ClaimsCheck](auth.md#claimscheck)
-
-___
-
-### ClaimsCheckProps
-
-Re-exports: [ClaimsCheckProps](../interfaces/auth.ClaimsCheckProps.md)
-
-___
-
-### ClaimsValidator
-
-Re-exports: [ClaimsValidator](../interfaces/auth.ClaimsValidator.md)
-
-___
-
-### DatabaseProvider
-
-Re-exports: [DatabaseProvider](sdk.md#databaseprovider)
-
-___
-
-### DatabaseSdkContext
-
-Re-exports: [DatabaseSdkContext](sdk.md#databasesdkcontext)
-
-___
-
-### FirebaseAppProvider
-
-Re-exports: [FirebaseAppProvider](firebaseApp.md#firebaseappprovider)
-
-___
-
-### FirestoreProvider
-
-Re-exports: [FirestoreProvider](sdk.md#firestoreprovider)
-
-___
-
-### FirestoreSdkContext
-
-Re-exports: [FirestoreSdkContext](sdk.md#firestoresdkcontext)
-
-___
-
-### FunctionsProvider
-
-Re-exports: [FunctionsProvider](sdk.md#functionsprovider)
-
-___
-
-### FunctionsSdkContext
-
-Re-exports: [FunctionsSdkContext](sdk.md#functionssdkcontext)
-
-___
-
-### ObservableStatus
-
-Re-exports: [ObservableStatus](../interfaces/useObservable.ObservableStatus.md)
-
-___
-
-### PerformanceProvider
-
-Re-exports: [PerformanceProvider](sdk.md#performanceprovider)
-
-___
-
-### PerformanceSdkContext
-
-Re-exports: [PerformanceSdkContext](sdk.md#performancesdkcontext)
-
-___
-
-### RemoteConfigProvider
-
-Re-exports: [RemoteConfigProvider](sdk.md#remoteconfigprovider)
-
-___
-
-### RemoteConfigSdkContext
-
-Re-exports: [RemoteConfigSdkContext](sdk.md#remoteconfigsdkcontext)
-
-___
-
-### SignInCheckOptionsBasic
-
-Re-exports: [SignInCheckOptionsBasic](../interfaces/auth.SignInCheckOptionsBasic.md)
-
-___
-
-### SignInCheckOptionsClaimsObject
-
-Re-exports: [SignInCheckOptionsClaimsObject](../interfaces/auth.SignInCheckOptionsClaimsObject.md)
-
-___
-
-### SignInCheckOptionsClaimsValidator
-
-Re-exports: [SignInCheckOptionsClaimsValidator](../interfaces/auth.SignInCheckOptionsClaimsValidator.md)
-
-___
-
-### SigninCheckResult
-
-Re-exports: [SigninCheckResult](auth.md#signincheckresult)
-
-___
-
-### StorageImage
-
-Re-exports: [StorageImage](storage.md#storageimage)
-
-___
-
-### StorageProvider
-
-Re-exports: [StorageProvider](sdk.md#storageprovider)
-
-___
-
-### StorageSdkContext
-
-Re-exports: [StorageSdkContext](sdk.md#storagesdkcontext)
-
-___
-
-### SuspensePerfProps
-
-Re-exports: [SuspensePerfProps](../interfaces/performance.SuspensePerfProps.md)
-
-___
-
-### SuspenseWithPerf
-
-Re-exports: [SuspenseWithPerf](performance.md#suspensewithperf)
-
-___
-
-### preloadFirestoreDoc
-
-Re-exports: [preloadFirestoreDoc](firestore.md#preloadfirestoredoc)
-
-___
-
-### preloadObservable
-
-Re-exports: [preloadObservable](useObservable.md#preloadobservable)
-
-___
-
-### preloadUser
-
-Re-exports: [preloadUser](auth.md#preloaduser)
-
-___
-
-### useAnalytics
-
-Re-exports: [useAnalytics](sdk.md#useanalytics)
-
-___
-
-### useAppCheck
-
-Re-exports: [useAppCheck](sdk.md#useappcheck)
-
-___
-
-### useAuth
-
-Re-exports: [useAuth](sdk.md#useauth)
-
-___
-
-### useCallableFunctionResponse
-
-Re-exports: [useCallableFunctionResponse](functions.md#usecallablefunctionresponse)
-
-___
-
-### useDatabase
-
-Re-exports: [useDatabase](sdk.md#usedatabase)
-
-___
-
-### useDatabaseList
-
-Re-exports: [useDatabaseList](database.md#usedatabaselist)
-
-___
-
-### useDatabaseListData
-
-Re-exports: [useDatabaseListData](database.md#usedatabaselistdata)
-
-___
-
-### useDatabaseObject
-
-Re-exports: [useDatabaseObject](database.md#usedatabaseobject)
-
-___
-
-### useDatabaseObjectData
-
-Re-exports: [useDatabaseObjectData](database.md#usedatabaseobjectdata)
-
-___
-
-### useFirebaseApp
-
-Re-exports: [useFirebaseApp](firebaseApp.md#usefirebaseapp)
-
-___
-
-### useFirestore
-
-Re-exports: [useFirestore](sdk.md#usefirestore)
-
-___
-
-### useFirestoreCollection
-
-Re-exports: [useFirestoreCollection](firestore.md#usefirestorecollection)
-
-___
-
-### useFirestoreCollectionData
-
-Re-exports: [useFirestoreCollectionData](firestore.md#usefirestorecollectiondata)
-
-___
-
-### useFirestoreDoc
-
-Re-exports: [useFirestoreDoc](firestore.md#usefirestoredoc)
-
-___
-
-### useFirestoreDocData
-
-Re-exports: [useFirestoreDocData](firestore.md#usefirestoredocdata)
-
-___
-
-### useFirestoreDocDataOnce
-
-Re-exports: [useFirestoreDocDataOnce](firestore.md#usefirestoredocdataonce)
-
-___
-
-### useFirestoreDocOnce
-
-Re-exports: [useFirestoreDocOnce](firestore.md#usefirestoredoconce)
-
-___
-
-### useFunctions
-
-Re-exports: [useFunctions](sdk.md#usefunctions)
-
-___
-
-### useIdTokenResult
-
-Re-exports: [useIdTokenResult](auth.md#useidtokenresult)
-
-___
-
-### useInitAnalytics
-
-Re-exports: [useInitAnalytics](sdk.md#useinitanalytics)
-
-___
-
-### useInitAppCheck
-
-Re-exports: [useInitAppCheck](sdk.md#useinitappcheck)
-
-___
-
-### useInitAuth
-
-Re-exports: [useInitAuth](sdk.md#useinitauth)
-
-___
-
-### useInitDatabase
-
-Re-exports: [useInitDatabase](sdk.md#useinitdatabase)
-
-___
-
-### useInitFirestore
-
-Re-exports: [useInitFirestore](sdk.md#useinitfirestore)
-
-___
-
-### useInitFunctions
-
-Re-exports: [useInitFunctions](sdk.md#useinitfunctions)
-
-___
-
-### useInitPerformance
-
-Re-exports: [useInitPerformance](sdk.md#useinitperformance)
-
-___
-
-### useInitRemoteConfig
-
-Re-exports: [useInitRemoteConfig](sdk.md#useinitremoteconfig)
-
-___
-
-### useInitStorage
-
-Re-exports: [useInitStorage](sdk.md#useinitstorage)
-
-___
-
-### useIsSuspenseEnabled
-
-Re-exports: [useIsSuspenseEnabled](firebaseApp.md#useissuspenseenabled)
-
-___
-
-### useObservable
-
-Re-exports: [useObservable](useObservable.md#useobservable)
-
-___
-
-### usePerformance
-
-Re-exports: [usePerformance](sdk.md#useperformance)
-
-___
-
-### useRemoteConfig
-
-Re-exports: [useRemoteConfig](sdk.md#useremoteconfig)
-
-___
-
-### useRemoteConfigAll
-
-Re-exports: [useRemoteConfigAll](remote_config.md#useremoteconfigall)
-
-___
-
-### useRemoteConfigBoolean
-
-Re-exports: [useRemoteConfigBoolean](remote_config.md#useremoteconfigboolean)
-
-___
-
-### useRemoteConfigNumber
-
-Re-exports: [useRemoteConfigNumber](remote_config.md#useremoteconfignumber)
-
-___
-
-### useRemoteConfigString
-
-Re-exports: [useRemoteConfigString](remote_config.md#useremoteconfigstring)
-
-___
-
-### useRemoteConfigValue
-
-Re-exports: [useRemoteConfigValue](remote_config.md#useremoteconfigvalue)
-
-___
-
-### useSigninCheck
-
-Re-exports: [useSigninCheck](auth.md#usesignincheck)
-
-___
-
-### useStorage
-
-Re-exports: [useStorage](sdk.md#usestorage)
-
-___
-
-### useStorageDownloadURL
-
-Re-exports: [useStorageDownloadURL](storage.md#usestoragedownloadurl)
-
-___
-
-### useStorageTask
-
-Re-exports: [useStorageTask](storage.md#usestoragetask)
-
-___
-
-### useSuspenseEnabledFromConfigAndContext
-
-Re-exports: [useSuspenseEnabledFromConfigAndContext](firebaseApp.md#usesuspenseenabledfromconfigandcontext)
-
-___
-
-### useUser
-
-Re-exports: [useUser](auth.md#useuser)
-
-___
-
-### version
-
-Re-exports: [version](firebaseApp.md#version)
-
-## Type aliases
-
-### ReactFireGlobals
-
-Ƭ **ReactFireGlobals**: `Object`
-
-#### Type declaration
-
-| Name | Type |
-| :------ | :------ |
-| `_reactFireDatabaseCachedQueries` | `DatabaseQuery`[] |
-| `_reactFireFirestoreQueryCache` | `FirestoreQuery`[] |
-| `_reactFirePreloadedObservables` | `Map`<`string`, [`SuspenseSubject`](../classes/SuspenseSubject.SuspenseSubject-1.md)<`any`\>\> |
-
-#### Defined in
-
-[src/index.ts:6](https://github.com/FirebaseExtended/reactfire/blob/main/src/index.ts#L6)
-
-## Functions
-
-### checkIdField
-
-â–¸ **checkIdField**(`options`): `any`
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `options` | [`ReactFireOptions`](../interfaces/index.ReactFireOptions.md) |
-
-#### Returns
-
-`any`
-
-#### Defined in
-
-[src/index.ts:47](https://github.com/FirebaseExtended/reactfire/blob/main/src/index.ts#L47)
-
-___
-
-### checkOptions
-
-â–¸ **checkOptions**(`options`, `field`): `any`
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `options` | [`ReactFireOptions`](../interfaces/index.ReactFireOptions.md) |
-| `field` | `string` |
-
-#### Returns
-
-`any`
-
-#### Defined in
-
-[src/index.ts:34](https://github.com/FirebaseExtended/reactfire/blob/main/src/index.ts#L34)
-
-___
-
-### checkinitialData
-
-â–¸ **checkinitialData**(`options`): `any`
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `options` | [`ReactFireOptions`](../interfaces/index.ReactFireOptions.md) |
-
-#### Returns
-
-`any`
-
-#### Defined in
-
-[src/index.ts:43](https://github.com/FirebaseExtended/reactfire/blob/main/src/index.ts#L43)
diff --git a/docs/reference/modules/performance.md b/docs/reference/modules/performance.md
deleted file mode 100644
index e68a38a0..00000000
--- a/docs/reference/modules/performance.md
+++ /dev/null
@@ -1,33 +0,0 @@
-[ReactFire reference docs](../README.md) / performance
-
-# Module: performance
-
-## Table of contents
-
-### Interfaces
-
-- [SuspensePerfProps](../interfaces/performance.SuspensePerfProps.md)
-
-### Functions
-
-- [SuspenseWithPerf](performance.md#suspensewithperf)
-
-## Functions
-
-### SuspenseWithPerf
-
-â–¸ **SuspenseWithPerf**(`__namedParameters`): `JSX.Element`
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `__namedParameters` | [`SuspensePerfProps`](../interfaces/performance.SuspensePerfProps.md) |
-
-#### Returns
-
-`JSX.Element`
-
-#### Defined in
-
-[src/performance.tsx:9](https://github.com/FirebaseExtended/reactfire/blob/main/src/performance.tsx#L9)
diff --git a/docs/reference/modules/remote_config.md b/docs/reference/modules/remote_config.md
deleted file mode 100644
index ef4baeee..00000000
--- a/docs/reference/modules/remote_config.md
+++ /dev/null
@@ -1,124 +0,0 @@
-[ReactFire reference docs](../README.md) / remote-config
-
-# Module: remote-config
-
-## Table of contents
-
-### Functions
-
-- [useRemoteConfigAll](remote_config.md#useremoteconfigall)
-- [useRemoteConfigBoolean](remote_config.md#useremoteconfigboolean)
-- [useRemoteConfigNumber](remote_config.md#useremoteconfignumber)
-- [useRemoteConfigString](remote_config.md#useremoteconfigstring)
-- [useRemoteConfigValue](remote_config.md#useremoteconfigvalue)
-
-## Functions
-
-### useRemoteConfigAll
-
-â–¸ **useRemoteConfigAll**(`key`): [`ObservableStatus`](../interfaces/useObservable.ObservableStatus.md)<`AllParameters`\>
-
-Convience method similar to useRemoteConfigValue. Returns allRemote Config parameters.
-
-#### Parameters
-
-| Name | Type | Description |
-| :------ | :------ | :------ |
-| `key` | `string` | The parameter key in Remote Config |
-
-#### Returns
-
-[`ObservableStatus`](../interfaces/useObservable.ObservableStatus.md)<`AllParameters`\>
-
-#### Defined in
-
-[src/remote-config.tsx:66](https://github.com/FirebaseExtended/reactfire/blob/main/src/remote-config.tsx#L66)
-
-___
-
-### useRemoteConfigBoolean
-
-â–¸ **useRemoteConfigBoolean**(`key`): [`ObservableStatus`](../interfaces/useObservable.ObservableStatus.md)<`boolean`\>
-
-Convience method similar to useRemoteConfigValue. Returns a `boolean` from a Remote Config parameter.
-
-#### Parameters
-
-| Name | Type | Description |
-| :------ | :------ | :------ |
-| `key` | `string` | The parameter key in Remote Config |
-
-#### Returns
-
-[`ObservableStatus`](../interfaces/useObservable.ObservableStatus.md)<`boolean`\>
-
-#### Defined in
-
-[src/remote-config.tsx:58](https://github.com/FirebaseExtended/reactfire/blob/main/src/remote-config.tsx#L58)
-
-___
-
-### useRemoteConfigNumber
-
-â–¸ **useRemoteConfigNumber**(`key`): [`ObservableStatus`](../interfaces/useObservable.ObservableStatus.md)<`number`\>
-
-Convience method similar to useRemoteConfigValue. Returns a `number` from a Remote Config parameter.
-
-#### Parameters
-
-| Name | Type | Description |
-| :------ | :------ | :------ |
-| `key` | `string` | The parameter key in Remote Config |
-
-#### Returns
-
-[`ObservableStatus`](../interfaces/useObservable.ObservableStatus.md)<`number`\>
-
-#### Defined in
-
-[src/remote-config.tsx:50](https://github.com/FirebaseExtended/reactfire/blob/main/src/remote-config.tsx#L50)
-
-___
-
-### useRemoteConfigString
-
-â–¸ **useRemoteConfigString**(`key`): [`ObservableStatus`](../interfaces/useObservable.ObservableStatus.md)<`string`\>
-
-Convience method similar to useRemoteConfigValue. Returns a `string` from a Remote Config parameter.
-
-#### Parameters
-
-| Name | Type | Description |
-| :------ | :------ | :------ |
-| `key` | `string` | The parameter key in Remote Config |
-
-#### Returns
-
-[`ObservableStatus`](../interfaces/useObservable.ObservableStatus.md)<`string`\>
-
-#### Defined in
-
-[src/remote-config.tsx:42](https://github.com/FirebaseExtended/reactfire/blob/main/src/remote-config.tsx#L42)
-
-___
-
-### useRemoteConfigValue
-
-â–¸ **useRemoteConfigValue**(`key`): [`ObservableStatus`](../interfaces/useObservable.ObservableStatus.md)<`RemoteConfigValue`\>
-
-Accepts a key and optionally a Remote Config instance. Returns a
-Remote Config Value.
-
-#### Parameters
-
-| Name | Type | Description |
-| :------ | :------ | :------ |
-| `key` | `string` | The parameter key in Remote Config |
-
-#### Returns
-
-[`ObservableStatus`](../interfaces/useObservable.ObservableStatus.md)<`RemoteConfigValue`\>
-
-#### Defined in
-
-[src/remote-config.tsx:34](https://github.com/FirebaseExtended/reactfire/blob/main/src/remote-config.tsx#L34)
diff --git a/docs/reference/modules/sdk.md b/docs/reference/modules/sdk.md
deleted file mode 100644
index c298808c..00000000
--- a/docs/reference/modules/sdk.md
+++ /dev/null
@@ -1,632 +0,0 @@
-[ReactFire reference docs](../README.md) / sdk
-
-# Module: sdk
-
-## Table of contents
-
-### Variables
-
-- [AnalyticsSdkContext](sdk.md#analyticssdkcontext)
-- [AppCheckSdkContext](sdk.md#appchecksdkcontext)
-- [AuthSdkContext](sdk.md#authsdkcontext)
-- [DatabaseSdkContext](sdk.md#databasesdkcontext)
-- [FirestoreSdkContext](sdk.md#firestoresdkcontext)
-- [FunctionsSdkContext](sdk.md#functionssdkcontext)
-- [PerformanceSdkContext](sdk.md#performancesdkcontext)
-- [RemoteConfigSdkContext](sdk.md#remoteconfigsdkcontext)
-- [StorageSdkContext](sdk.md#storagesdkcontext)
-
-### Functions
-
-- [AnalyticsProvider](sdk.md#analyticsprovider)
-- [AppCheckProvider](sdk.md#appcheckprovider)
-- [AuthProvider](sdk.md#authprovider)
-- [DatabaseProvider](sdk.md#databaseprovider)
-- [FirestoreProvider](sdk.md#firestoreprovider)
-- [FunctionsProvider](sdk.md#functionsprovider)
-- [PerformanceProvider](sdk.md#performanceprovider)
-- [RemoteConfigProvider](sdk.md#remoteconfigprovider)
-- [StorageProvider](sdk.md#storageprovider)
-- [useAnalytics](sdk.md#useanalytics)
-- [useAppCheck](sdk.md#useappcheck)
-- [useAuth](sdk.md#useauth)
-- [useDatabase](sdk.md#usedatabase)
-- [useFirestore](sdk.md#usefirestore)
-- [useFunctions](sdk.md#usefunctions)
-- [useInitAnalytics](sdk.md#useinitanalytics)
-- [useInitAppCheck](sdk.md#useinitappcheck)
-- [useInitAuth](sdk.md#useinitauth)
-- [useInitDatabase](sdk.md#useinitdatabase)
-- [useInitFirestore](sdk.md#useinitfirestore)
-- [useInitFunctions](sdk.md#useinitfunctions)
-- [useInitPerformance](sdk.md#useinitperformance)
-- [useInitRemoteConfig](sdk.md#useinitremoteconfig)
-- [useInitStorage](sdk.md#useinitstorage)
-- [usePerformance](sdk.md#useperformance)
-- [useRemoteConfig](sdk.md#useremoteconfig)
-- [useStorage](sdk.md#usestorage)
-
-## Variables
-
-### AnalyticsSdkContext
-
-• `Const` **AnalyticsSdkContext**: `Context`<`undefined` \| `Analytics`\>
-
-#### Defined in
-
-[src/sdk.tsx:20](https://github.com/FirebaseExtended/reactfire/blob/main/src/sdk.tsx#L20)
-
-___
-
-### AppCheckSdkContext
-
-• `Const` **AppCheckSdkContext**: `Context`<`undefined` \| `AppCheck`\>
-
-#### Defined in
-
-[src/sdk.tsx:18](https://github.com/FirebaseExtended/reactfire/blob/main/src/sdk.tsx#L18)
-
-___
-
-### AuthSdkContext
-
-• `Const` **AuthSdkContext**: `Context`<`undefined` \| `Auth`\>
-
-#### Defined in
-
-[src/sdk.tsx:19](https://github.com/FirebaseExtended/reactfire/blob/main/src/sdk.tsx#L19)
-
-___
-
-### DatabaseSdkContext
-
-• `Const` **DatabaseSdkContext**: `Context`<`undefined` \| `Database`\>
-
-#### Defined in
-
-[src/sdk.tsx:21](https://github.com/FirebaseExtended/reactfire/blob/main/src/sdk.tsx#L21)
-
-___
-
-### FirestoreSdkContext
-
-• `Const` **FirestoreSdkContext**: `Context`<`undefined` \| `Firestore`\>
-
-#### Defined in
-
-[src/sdk.tsx:22](https://github.com/FirebaseExtended/reactfire/blob/main/src/sdk.tsx#L22)
-
-___
-
-### FunctionsSdkContext
-
-• `Const` **FunctionsSdkContext**: `Context`<`undefined` \| `Functions`\>
-
-#### Defined in
-
-[src/sdk.tsx:23](https://github.com/FirebaseExtended/reactfire/blob/main/src/sdk.tsx#L23)
-
-___
-
-### PerformanceSdkContext
-
-• `Const` **PerformanceSdkContext**: `Context`<`undefined` \| `FirebasePerformance`\>
-
-#### Defined in
-
-[src/sdk.tsx:25](https://github.com/FirebaseExtended/reactfire/blob/main/src/sdk.tsx#L25)
-
-___
-
-### RemoteConfigSdkContext
-
-• `Const` **RemoteConfigSdkContext**: `Context`<`undefined` \| `RemoteConfig`\>
-
-#### Defined in
-
-[src/sdk.tsx:26](https://github.com/FirebaseExtended/reactfire/blob/main/src/sdk.tsx#L26)
-
-___
-
-### StorageSdkContext
-
-• `Const` **StorageSdkContext**: `Context`<`undefined` \| `FirebaseStorage`\>
-
-#### Defined in
-
-[src/sdk.tsx:24](https://github.com/FirebaseExtended/reactfire/blob/main/src/sdk.tsx#L24)
-
-## Functions
-
-### AnalyticsProvider
-
-â–¸ `Const` **AnalyticsProvider**(`props`): `Element`
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `props` | `PropsWithChildren`<`Object`\> |
-
-#### Returns
-
-`Element`
-
-#### Defined in
-
-[src/sdk.tsx:74](https://github.com/FirebaseExtended/reactfire/blob/main/src/sdk.tsx#L74)
-
-___
-
-### AppCheckProvider
-
-â–¸ `Const` **AppCheckProvider**(`props`): `Element`
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `props` | `PropsWithChildren`<`Object`\> |
-
-#### Returns
-
-`Element`
-
-#### Defined in
-
-[src/sdk.tsx:72](https://github.com/FirebaseExtended/reactfire/blob/main/src/sdk.tsx#L72)
-
-___
-
-### AuthProvider
-
-â–¸ `Const` **AuthProvider**(`props`): `Element`
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `props` | `PropsWithChildren`<`Object`\> |
-
-#### Returns
-
-`Element`
-
-#### Defined in
-
-[src/sdk.tsx:73](https://github.com/FirebaseExtended/reactfire/blob/main/src/sdk.tsx#L73)
-
-___
-
-### DatabaseProvider
-
-â–¸ `Const` **DatabaseProvider**(`props`): `Element`
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `props` | `PropsWithChildren`<`Object`\> |
-
-#### Returns
-
-`Element`
-
-#### Defined in
-
-[src/sdk.tsx:75](https://github.com/FirebaseExtended/reactfire/blob/main/src/sdk.tsx#L75)
-
-___
-
-### FirestoreProvider
-
-â–¸ `Const` **FirestoreProvider**(`props`): `Element`
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `props` | `PropsWithChildren`<`Object`\> |
-
-#### Returns
-
-`Element`
-
-#### Defined in
-
-[src/sdk.tsx:76](https://github.com/FirebaseExtended/reactfire/blob/main/src/sdk.tsx#L76)
-
-___
-
-### FunctionsProvider
-
-â–¸ `Const` **FunctionsProvider**(`props`): `Element`
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `props` | `PropsWithChildren`<`Object`\> |
-
-#### Returns
-
-`Element`
-
-#### Defined in
-
-[src/sdk.tsx:77](https://github.com/FirebaseExtended/reactfire/blob/main/src/sdk.tsx#L77)
-
-___
-
-### PerformanceProvider
-
-â–¸ `Const` **PerformanceProvider**(`props`): `Element`
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `props` | `PropsWithChildren`<`Object`\> |
-
-#### Returns
-
-`Element`
-
-#### Defined in
-
-[src/sdk.tsx:78](https://github.com/FirebaseExtended/reactfire/blob/main/src/sdk.tsx#L78)
-
-___
-
-### RemoteConfigProvider
-
-â–¸ `Const` **RemoteConfigProvider**(`props`): `Element`
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `props` | `PropsWithChildren`<`Object`\> |
-
-#### Returns
-
-`Element`
-
-#### Defined in
-
-[src/sdk.tsx:80](https://github.com/FirebaseExtended/reactfire/blob/main/src/sdk.tsx#L80)
-
-___
-
-### StorageProvider
-
-â–¸ `Const` **StorageProvider**(`props`): `Element`
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `props` | `PropsWithChildren`<`Object`\> |
-
-#### Returns
-
-`Element`
-
-#### Defined in
-
-[src/sdk.tsx:79](https://github.com/FirebaseExtended/reactfire/blob/main/src/sdk.tsx#L79)
-
-___
-
-### useAnalytics
-
-â–¸ `Const` **useAnalytics**(): `Analytics`
-
-#### Returns
-
-`Analytics`
-
-#### Defined in
-
-[src/sdk.tsx:84](https://github.com/FirebaseExtended/reactfire/blob/main/src/sdk.tsx#L84)
-
-___
-
-### useAppCheck
-
-â–¸ `Const` **useAppCheck**(): `AppCheck`
-
-#### Returns
-
-`AppCheck`
-
-#### Defined in
-
-[src/sdk.tsx:82](https://github.com/FirebaseExtended/reactfire/blob/main/src/sdk.tsx#L82)
-
-___
-
-### useAuth
-
-â–¸ `Const` **useAuth**(): `Auth`
-
-#### Returns
-
-`Auth`
-
-#### Defined in
-
-[src/sdk.tsx:83](https://github.com/FirebaseExtended/reactfire/blob/main/src/sdk.tsx#L83)
-
-___
-
-### useDatabase
-
-â–¸ `Const` **useDatabase**(): `Database`
-
-#### Returns
-
-`Database`
-
-#### Defined in
-
-[src/sdk.tsx:85](https://github.com/FirebaseExtended/reactfire/blob/main/src/sdk.tsx#L85)
-
-___
-
-### useFirestore
-
-â–¸ `Const` **useFirestore**(): `Firestore`
-
-#### Returns
-
-`Firestore`
-
-#### Defined in
-
-[src/sdk.tsx:86](https://github.com/FirebaseExtended/reactfire/blob/main/src/sdk.tsx#L86)
-
-___
-
-### useFunctions
-
-â–¸ `Const` **useFunctions**(): `Functions`
-
-#### Returns
-
-`Functions`
-
-#### Defined in
-
-[src/sdk.tsx:87](https://github.com/FirebaseExtended/reactfire/blob/main/src/sdk.tsx#L87)
-
-___
-
-### useInitAnalytics
-
-â–¸ `Const` **useInitAnalytics**(`initializer`, `options?`): [`ObservableStatus`](../interfaces/useObservable.ObservableStatus.md)<`Analytics`\>
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `initializer` | (`firebaseApp`: `FirebaseApp`) => `Promise`<`Analytics`\> |
-| `options?` | [`ReactFireOptions`](../interfaces/index.ReactFireOptions.md)<`Analytics`\> |
-
-#### Returns
-
-[`ObservableStatus`](../interfaces/useObservable.ObservableStatus.md)<`Analytics`\>
-
-#### Defined in
-
-[src/sdk.tsx:99](https://github.com/FirebaseExtended/reactfire/blob/main/src/sdk.tsx#L99)
-
-___
-
-### useInitAppCheck
-
-â–¸ `Const` **useInitAppCheck**(`initializer`, `options?`): [`ObservableStatus`](../interfaces/useObservable.ObservableStatus.md)<`AppCheck`\>
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `initializer` | (`firebaseApp`: `FirebaseApp`) => `Promise`<`AppCheck`\> |
-| `options?` | [`ReactFireOptions`](../interfaces/index.ReactFireOptions.md)<`AppCheck`\> |
-
-#### Returns
-
-[`ObservableStatus`](../interfaces/useObservable.ObservableStatus.md)<`AppCheck`\>
-
-#### Defined in
-
-[src/sdk.tsx:97](https://github.com/FirebaseExtended/reactfire/blob/main/src/sdk.tsx#L97)
-
-___
-
-### useInitAuth
-
-â–¸ `Const` **useInitAuth**(`initializer`, `options?`): [`ObservableStatus`](../interfaces/useObservable.ObservableStatus.md)<`Auth`\>
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `initializer` | (`firebaseApp`: `FirebaseApp`) => `Promise`<`Auth`\> |
-| `options?` | [`ReactFireOptions`](../interfaces/index.ReactFireOptions.md)<`Auth`\> |
-
-#### Returns
-
-[`ObservableStatus`](../interfaces/useObservable.ObservableStatus.md)<`Auth`\>
-
-#### Defined in
-
-[src/sdk.tsx:98](https://github.com/FirebaseExtended/reactfire/blob/main/src/sdk.tsx#L98)
-
-___
-
-### useInitDatabase
-
-â–¸ `Const` **useInitDatabase**(`initializer`, `options?`): [`ObservableStatus`](../interfaces/useObservable.ObservableStatus.md)<`Database`\>
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `initializer` | (`firebaseApp`: `FirebaseApp`) => `Promise`<`Database`\> |
-| `options?` | [`ReactFireOptions`](../interfaces/index.ReactFireOptions.md)<`Database`\> |
-
-#### Returns
-
-[`ObservableStatus`](../interfaces/useObservable.ObservableStatus.md)<`Database`\>
-
-#### Defined in
-
-[src/sdk.tsx:100](https://github.com/FirebaseExtended/reactfire/blob/main/src/sdk.tsx#L100)
-
-___
-
-### useInitFirestore
-
-â–¸ `Const` **useInitFirestore**(`initializer`, `options?`): [`ObservableStatus`](../interfaces/useObservable.ObservableStatus.md)<`Firestore`\>
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `initializer` | (`firebaseApp`: `FirebaseApp`) => `Promise`<`Firestore`\> |
-| `options?` | [`ReactFireOptions`](../interfaces/index.ReactFireOptions.md)<`Firestore`\> |
-
-#### Returns
-
-[`ObservableStatus`](../interfaces/useObservable.ObservableStatus.md)<`Firestore`\>
-
-#### Defined in
-
-[src/sdk.tsx:101](https://github.com/FirebaseExtended/reactfire/blob/main/src/sdk.tsx#L101)
-
-___
-
-### useInitFunctions
-
-â–¸ `Const` **useInitFunctions**(`initializer`, `options?`): [`ObservableStatus`](../interfaces/useObservable.ObservableStatus.md)<`Functions`\>
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `initializer` | (`firebaseApp`: `FirebaseApp`) => `Promise`<`Functions`\> |
-| `options?` | [`ReactFireOptions`](../interfaces/index.ReactFireOptions.md)<`Functions`\> |
-
-#### Returns
-
-[`ObservableStatus`](../interfaces/useObservable.ObservableStatus.md)<`Functions`\>
-
-#### Defined in
-
-[src/sdk.tsx:102](https://github.com/FirebaseExtended/reactfire/blob/main/src/sdk.tsx#L102)
-
-___
-
-### useInitPerformance
-
-â–¸ `Const` **useInitPerformance**(`initializer`, `options?`): [`ObservableStatus`](../interfaces/useObservable.ObservableStatus.md)<`FirebasePerformance`\>
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `initializer` | (`firebaseApp`: `FirebaseApp`) => `Promise`<`FirebasePerformance`\> |
-| `options?` | [`ReactFireOptions`](../interfaces/index.ReactFireOptions.md)<`FirebasePerformance`\> |
-
-#### Returns
-
-[`ObservableStatus`](../interfaces/useObservable.ObservableStatus.md)<`FirebasePerformance`\>
-
-#### Defined in
-
-[src/sdk.tsx:103](https://github.com/FirebaseExtended/reactfire/blob/main/src/sdk.tsx#L103)
-
-___
-
-### useInitRemoteConfig
-
-â–¸ `Const` **useInitRemoteConfig**(`initializer`, `options?`): [`ObservableStatus`](../interfaces/useObservable.ObservableStatus.md)<`RemoteConfig`\>
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `initializer` | (`firebaseApp`: `FirebaseApp`) => `Promise`<`RemoteConfig`\> |
-| `options?` | [`ReactFireOptions`](../interfaces/index.ReactFireOptions.md)<`RemoteConfig`\> |
-
-#### Returns
-
-[`ObservableStatus`](../interfaces/useObservable.ObservableStatus.md)<`RemoteConfig`\>
-
-#### Defined in
-
-[src/sdk.tsx:105](https://github.com/FirebaseExtended/reactfire/blob/main/src/sdk.tsx#L105)
-
-___
-
-### useInitStorage
-
-â–¸ `Const` **useInitStorage**(`initializer`, `options?`): [`ObservableStatus`](../interfaces/useObservable.ObservableStatus.md)<`FirebaseStorage`\>
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `initializer` | (`firebaseApp`: `FirebaseApp`) => `Promise`<`FirebaseStorage`\> |
-| `options?` | [`ReactFireOptions`](../interfaces/index.ReactFireOptions.md)<`FirebaseStorage`\> |
-
-#### Returns
-
-[`ObservableStatus`](../interfaces/useObservable.ObservableStatus.md)<`FirebaseStorage`\>
-
-#### Defined in
-
-[src/sdk.tsx:107](https://github.com/FirebaseExtended/reactfire/blob/main/src/sdk.tsx#L107)
-
-___
-
-### usePerformance
-
-â–¸ `Const` **usePerformance**(): `FirebasePerformance`
-
-#### Returns
-
-`FirebasePerformance`
-
-#### Defined in
-
-[src/sdk.tsx:88](https://github.com/FirebaseExtended/reactfire/blob/main/src/sdk.tsx#L88)
-
-___
-
-### useRemoteConfig
-
-â–¸ `Const` **useRemoteConfig**(): `RemoteConfig`
-
-#### Returns
-
-`RemoteConfig`
-
-#### Defined in
-
-[src/sdk.tsx:90](https://github.com/FirebaseExtended/reactfire/blob/main/src/sdk.tsx#L90)
-
-___
-
-### useStorage
-
-â–¸ `Const` **useStorage**(): `FirebaseStorage`
-
-#### Returns
-
-`FirebaseStorage`
-
-#### Defined in
-
-[src/sdk.tsx:89](https://github.com/FirebaseExtended/reactfire/blob/main/src/sdk.tsx#L89)
diff --git a/docs/reference/modules/storage.md b/docs/reference/modules/storage.md
deleted file mode 100644
index 3730294c..00000000
--- a/docs/reference/modules/storage.md
+++ /dev/null
@@ -1,90 +0,0 @@
-[ReactFire reference docs](../README.md) / storage
-
-# Module: storage
-
-## Table of contents
-
-### Functions
-
-- [StorageImage](storage.md#storageimage)
-- [useStorageDownloadURL](storage.md#usestoragedownloadurl)
-- [useStorageTask](storage.md#usestoragetask)
-
-## Functions
-
-### StorageImage
-
-â–¸ **StorageImage**(`props`): `Element`
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `props` | `StorageImageProps` & `React.DetailedHTMLProps`<`React.ImgHTMLAttributes`<`HTMLImageElement`\>, `HTMLImageElement`\> |
-
-#### Returns
-
-`Element`
-
-#### Defined in
-
-[src/storage.tsx:78](https://github.com/FirebaseExtended/reactfire/blob/main/src/storage.tsx#L78)
-
-___
-
-### useStorageDownloadURL
-
-â–¸ **useStorageDownloadURL**<`T`\>(`ref`, `options?`): [`ObservableStatus`](../interfaces/useObservable.ObservableStatus.md)<`string` \| `T`\>
-
-Subscribe to a storage ref's download URL
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `T` | `string` |
-
-#### Parameters
-
-| Name | Type | Description |
-| :------ | :------ | :------ |
-| `ref` | `StorageReference` | reference to the blob you want to download |
-| `options?` | [`ReactFireOptions`](../interfaces/index.ReactFireOptions.md)<`T`\> | |
-
-#### Returns
-
-[`ObservableStatus`](../interfaces/useObservable.ObservableStatus.md)<`string` \| `T`\>
-
-#### Defined in
-
-[src/storage.tsx:29](https://github.com/FirebaseExtended/reactfire/blob/main/src/storage.tsx#L29)
-
-___
-
-### useStorageTask
-
-â–¸ **useStorageTask**<`T`\>(`task`, `ref`, `options?`): [`ObservableStatus`](../interfaces/useObservable.ObservableStatus.md)<`UploadTaskSnapshot` \| `T`\>
-
-Subscribe to the progress of a storage task
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `T` | `unknown` |
-
-#### Parameters
-
-| Name | Type | Description |
-| :------ | :------ | :------ |
-| `task` | `UploadTask` | the task you want to listen to |
-| `ref` | `StorageReference` | reference to the blob the task is acting on |
-| `options?` | [`ReactFireOptions`](../interfaces/index.ReactFireOptions.md)<`T`\> | |
-
-#### Returns
-
-[`ObservableStatus`](../interfaces/useObservable.ObservableStatus.md)<`UploadTaskSnapshot` \| `T`\>
-
-#### Defined in
-
-[src/storage.tsx:16](https://github.com/FirebaseExtended/reactfire/blob/main/src/storage.tsx#L16)
diff --git a/docs/reference/modules/useObservable.md b/docs/reference/modules/useObservable.md
deleted file mode 100644
index 2888b693..00000000
--- a/docs/reference/modules/useObservable.md
+++ /dev/null
@@ -1,69 +0,0 @@
-[ReactFire reference docs](../README.md) / useObservable
-
-# Module: useObservable
-
-## Table of contents
-
-### Interfaces
-
-- [ObservableStatus](../interfaces/useObservable.ObservableStatus.md)
-
-### Functions
-
-- [preloadObservable](useObservable.md#preloadobservable)
-- [useObservable](useObservable.md#useobservable)
-
-## Functions
-
-### preloadObservable
-
-â–¸ **preloadObservable**<`T`\>(`source`, `id`): [`SuspenseSubject`](../classes/SuspenseSubject.SuspenseSubject-1.md)<`T`\>
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `T` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `source` | `Observable`<`T`\> |
-| `id` | `string` |
-
-#### Returns
-
-[`SuspenseSubject`](../classes/SuspenseSubject.SuspenseSubject-1.md)<`T`\>
-
-#### Defined in
-
-[src/useObservable.ts:19](https://github.com/FirebaseExtended/reactfire/blob/main/src/useObservable.ts#L19)
-
-___
-
-### useObservable
-
-â–¸ **useObservable**<`T`\>(`observableId`, `source`, `config?`): [`ObservableStatus`](../interfaces/useObservable.ObservableStatus.md)<`T`\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `T` | `unknown` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `observableId` | `string` |
-| `source` | `Observable`<`T`\> |
-| `config` | [`ReactFireOptions`](../interfaces/index.ReactFireOptions.md) |
-
-#### Returns
-
-[`ObservableStatus`](../interfaces/useObservable.ObservableStatus.md)<`T`\>
-
-#### Defined in
-
-[src/useObservable.ts:95](https://github.com/FirebaseExtended/reactfire/blob/main/src/useObservable.ts#L95)
diff --git a/example/styles.pcss b/example/index.css
similarity index 64%
rename from example/styles.pcss
rename to example/index.css
index b5c61c95..bd6213e1 100644
--- a/example/styles.pcss
+++ b/example/index.css
@@ -1,3 +1,3 @@
@tailwind base;
@tailwind components;
-@tailwind utilities;
+@tailwind utilities;
\ No newline at end of file
diff --git a/example/index.html b/example/index.html
index 547e2e04..9d6f2f1e 100644
--- a/example/index.html
+++ b/example/index.html
@@ -9,6 +9,6 @@
-
+