Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
975ab7c
docs(README): use absolute links in package references
mikehardy Feb 13, 2026
f1fca04
docs: Convert md -> mdx
Ehesp Jul 10, 2025
f08d75d
docs: update docs.json
Ehesp Jul 10, 2025
5857a9b
docs: reference CHANGELOG.md from github for release notes now
mikehardy Feb 12, 2026
81728ca
docs: new migration pages to mdx and linked in for docs.page
mikehardy Feb 12, 2026
13acecd
style(lint): ignore any typing on globalThis
mikehardy Feb 12, 2026
e3d636c
style(types): alter typescript comments to be markdown compliant
mikehardy Feb 13, 2026
e9d0744
docs: configure reference API generation as HTML via typedoc
mikehardy Apr 1, 2026
87bfbab
docs(reference): add link to reference docs to docs.page config
mikehardy Feb 12, 2026
8d63e95
docs(reference): result of running typedoc
mikehardy Feb 12, 2026
68fa6d6
docs(lint): format-on-save auto-formatting
mikehardy Feb 13, 2026
13f82f5
docs: put reference API on separate tab
mikehardy Feb 13, 2026
178fe3e
docs(reference): move typedoc main README file to index.mdx
mikehardy Feb 13, 2026
1e5655e
empty reference index page as workaround
mikehardy Feb 13, 2026
a393eea
app reference page error bisect WIP
mikehardy Feb 13, 2026
416e1b1
style: enclose return types in code backticks
mikehardy Feb 13, 2026
97c01ad
docs: create empty reference index page to avoid render issues
mikehardy Feb 13, 2026
7e83992
docs(reference): regenerate typedoc with fixes
mikehardy Feb 13, 2026
017ef4f
WIP - regenerate speculatively with packages typedoc monorepo style
mikehardy Apr 1, 2026
8beb9db
docs: add agent test
Ehesp Apr 14, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 16 additions & 16 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,24 +42,24 @@ The main package that you interface with is `App` (`@react-native-firebase/app`)

| Name | Downloads |
| -------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: |
| [AI](/packages/ai) | [![badge](https://img.shields.io/npm/dm/@react-native-firebase/ai.svg?style=for-the-badge&logo=npm)](https://www.npmjs.com/package/@react-native-firebase/ai) |
| [Analytics](/packages/analytics) | [![badge](https://img.shields.io/npm/dm/@react-native-firebase/analytics.svg?style=for-the-badge&logo=npm)](https://www.npmjs.com/package/@react-native-firebase/analytics) |
| [App](/packages/app) | [![badge](https://img.shields.io/npm/dm/@react-native-firebase/app.svg?style=for-the-badge&logo=npm)](https://www.npmjs.com/package/@react-native-firebase/app) |
| [App Check](/packages/app-check) | [![badge](https://img.shields.io/npm/dm/@react-native-firebase/app-check.svg?style=for-the-badge&logo=npm)](https://www.npmjs.com/package/@react-native-firebase/app-check) |
| [App Distribution](/packages/app-distribution) | [![badge](https://img.shields.io/npm/dm/@react-native-firebase/app-distribution.svg?style=for-the-badge&logo=npm)](https://www.npmjs.com/package/@react-native-firebase/app-distribution) |
| [Authentication](/packages/auth) | [![badge](https://img.shields.io/npm/dm/@react-native-firebase/auth.svg?style=for-the-badge&logo=npm)](https://www.npmjs.com/package/@react-native-firebase/auth) |
| [Cloud Firestore](/packages/firestore) | [![badge](https://img.shields.io/npm/dm/@react-native-firebase/firestore.svg?style=for-the-badge&logo=npm)](https://www.npmjs.com/package/@react-native-firebase/firestore) |
| [Cloud Functions](/packages/functions) | [![badge](https://img.shields.io/npm/dm/@react-native-firebase/functions.svg?style=for-the-badge&logo=npm)](https://www.npmjs.com/package/@react-native-firebase/functions) |
| [Cloud Messaging](/packages/messaging) | [![badge](https://img.shields.io/npm/dm/@react-native-firebase/messaging.svg?style=for-the-badge&logo=npm)](https://www.npmjs.com/package/@react-native-firebase/messaging) |
| [Cloud Storage](/packages/storage) | [![badge](https://img.shields.io/npm/dm/@react-native-firebase/storage.svg?style=for-the-badge&logo=npm)](https://www.npmjs.com/package/@react-native-firebase/storage) |
| [Crashlytics](/packages/crashlytics) | [![badge](https://img.shields.io/npm/dm/@react-native-firebase/crashlytics.svg?style=for-the-badge&logo=npm)](https://www.npmjs.com/package/@react-native-firebase/crashlytics) |
| [Dynamic Links](/packages/dynamic-links) | [![badge](https://img.shields.io/npm/dm/@react-native-firebase/dynamic-links.svg?style=for-the-badge&logo=npm)](https://www.npmjs.com/package/@react-native-firebase/dynamic-links) |
| [AI](https://github.com/invertase/react-native-firebase/tree/main/packages/ai) | [![badge](https://img.shields.io/npm/dm/@react-native-firebase/ai.svg?style=for-the-badge&logo=npm)](https://www.npmjs.com/package/@react-native-firebase/ai) |
| [Analytics](https://github.com/invertase/react-native-firebase/tree/main/packages/analytics) | [![badge](https://img.shields.io/npm/dm/@react-native-firebase/analytics.svg?style=for-the-badge&logo=npm)](https://www.npmjs.com/package/@react-native-firebase/analytics) |
| [App](https://github.com/invertase/react-native-firebase/tree/main/packages/app) | [![badge](https://img.shields.io/npm/dm/@react-native-firebase/app.svg?style=for-the-badge&logo=npm)](https://www.npmjs.com/package/@react-native-firebase/app) |
| [App Check](https://github.com/invertase/react-native-firebase/tree/main/packages/app-check) | [![badge](https://img.shields.io/npm/dm/@react-native-firebase/app-check.svg?style=for-the-badge&logo=npm)](https://www.npmjs.com/package/@react-native-firebase/app-check) |
| [App Distribution](https://github.com/invertase/react-native-firebase/tree/main/packages/app-distribution) | [![badge](https://img.shields.io/npm/dm/@react-native-firebase/app-distribution.svg?style=for-the-badge&logo=npm)](https://www.npmjs.com/package/@react-native-firebase/app-distribution) |
| [Authentication](https://github.com/invertase/react-native-firebase/tree/main/packages/auth) | [![badge](https://img.shields.io/npm/dm/@react-native-firebase/auth.svg?style=for-the-badge&logo=npm)](https://www.npmjs.com/package/@react-native-firebase/auth) |
| [Cloud Firestore](https://github.com/invertase/react-native-firebase/tree/main/packages/firestore) | [![badge](https://img.shields.io/npm/dm/@react-native-firebase/firestore.svg?style=for-the-badge&logo=npm)](https://www.npmjs.com/package/@react-native-firebase/firestore) |
| [Cloud Functions](https://github.com/invertase/react-native-firebase/tree/main/packages/functions) | [![badge](https://img.shields.io/npm/dm/@react-native-firebase/functions.svg?style=for-the-badge&logo=npm)](https://www.npmjs.com/package/@react-native-firebase/functions) |
| [Cloud Messaging](https://github.com/invertase/react-native-firebase/tree/main/packages/messaging) | [![badge](https://img.shields.io/npm/dm/@react-native-firebase/messaging.svg?style=for-the-badge&logo=npm)](https://www.npmjs.com/package/@react-native-firebase/messaging) |
| [Cloud Storage](https://github.com/invertase/react-native-firebase/tree/main/packages/storage) | [![badge](https://img.shields.io/npm/dm/@react-native-firebase/storage.svg?style=for-the-badge&logo=npm)](https://www.npmjs.com/package/@react-native-firebase/storage) |
| [Crashlytics](https://github.com/invertase/react-native-firebase/tree/main/packages/crashlytics) | [![badge](https://img.shields.io/npm/dm/@react-native-firebase/crashlytics.svg?style=for-the-badge&logo=npm)](https://www.npmjs.com/package/@react-native-firebase/crashlytics) |
| [Dynamic Links](https://github.com/invertase/react-native-firebase/tree/main/packages/dynamic-links) | [![badge](https://img.shields.io/npm/dm/@react-native-firebase/dynamic-links.svg?style=for-the-badge&logo=npm)](https://www.npmjs.com/package/@react-native-firebase/dynamic-links) |
| [In-app Messaging](/packages/in-app-messaging) | [![badge](https://img.shields.io/npm/dm/@react-native-firebase/in-app-messaging.svg?style=for-the-badge&logo=npm)](https://www.npmjs.com/package/@react-native-firebase/in-app-messaging) |
| [Installations](/packages/installations) | [![badge](https://img.shields.io/npm/dm/@react-native-firebase/installations.svg?style=for-the-badge&logo=npm)](https://www.npmjs.com/package/@react-native-firebase/installations) |
| [Installations](https://github.com/invertase/react-native-firebase/tree/main/packages/installations) | [![badge](https://img.shields.io/npm/dm/@react-native-firebase/installations.svg?style=for-the-badge&logo=npm)](https://www.npmjs.com/package/@react-native-firebase/installations) |
| [ML](/packages/ml) | [![badge](https://img.shields.io/npm/dm/@react-native-firebase/ml.svg?style=for-the-badge&logo=npm)](https://www.npmjs.com/package/@react-native-firebase/ml) |
| [Performance Monitoring](/packages/perf) | [![badge](https://img.shields.io/npm/dm/@react-native-firebase/perf.svg?style=for-the-badge&logo=npm)](https://www.npmjs.com/package/@react-native-firebase/perf) |
| [Realtime Database](/packages/database) | [![badge](https://img.shields.io/npm/dm/@react-native-firebase/database.svg?style=for-the-badge&logo=npm)](https://www.npmjs.com/package/@react-native-firebase/database) |
| [Remote Config](/packages/remote-config) | [![badge](https://img.shields.io/npm/dm/@react-native-firebase/remote-config.svg?style=for-the-badge&logo=npm)](https://www.npmjs.com/package/@react-native-firebase/remote-config) |
| [Performance Monitoring](https://github.com/invertase/react-native-firebase/tree/main/packages/perf) | [![badge](https://img.shields.io/npm/dm/@react-native-firebase/perf.svg?style=for-the-badge&logo=npm)](https://www.npmjs.com/package/@react-native-firebase/perf) |
| [Realtime Database](https://github.com/invertase/react-native-firebase/tree/main/packages/database) | [![badge](https://img.shields.io/npm/dm/@react-native-firebase/database.svg?style=for-the-badge&logo=npm)](https://www.npmjs.com/package/@react-native-firebase/database) |
| [Remote Config](https://github.com/invertase/react-native-firebase/tree/main/packages/remote-config) | [![badge](https://img.shields.io/npm/dm/@react-native-firebase/remote-config.svg?style=for-the-badge&logo=npm)](https://www.npmjs.com/package/@react-native-firebase/remote-config) |

## Documentation

Expand Down
243 changes: 243 additions & 0 deletions docs.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,243 @@
{
"$schema": "https://docs.page/schema.json",
"name": "React Native Firebase",
"description": "A well-tested feature-rich modular Firebase implementation for React Native. Supports both iOS & Android platforms for all Firebase services.",
"favicon": "/rnfb-logo.png",
"agent": "68400764-5d8a-44fa-8b05-87a0a166e110",
"theme": {
"primary": "#e88533"
},
"logo": {
"light": "/rnfb-logo.png",
"dark": "/rnfb-logo.png"
},
"social": {
"x": "@invertaseio",
"github": "invertase/react-native-firebase"
},
"tabs": [
{
"id": "root",
"title": "Documentation",
"href": "/"
},
{
"id": "reference",
"title": "Reference API",
"href": "/reference"
}
],
"sidebar": [
{
"group": "Getting Started",
"tab": "root",
"pages": [
{ "title": "Getting Started", "href": "/" },
{ "title": "Migration Guide to v22", "href": "/migrating-to-v22" },
{ "title": "Migration Guide to v23", "href": "/migrating-to-v23" },
{ "title": "Migration Guide to v24", "href": "/migrating-to-v24" },
{ "title": "TypeScript", "href": "/typescript" },
{ "title": "Platforms", "href": "/platforms" },
{
"title": "Release Notes",
"href": "https://github.com/invertase/react-native-firebase/blob/main/CHANGELOG.md"
},
{ "title": "FAQs and Tips", "href": "/faqs-and-tips" },
{ "title": "Feature Requests", "href": "https://invertase.canny.io/react-native-firebase" },
{
"title": "Contributing",
"href": "https://github.com/invertase/react-native-firebase/blob/main/CONTRIBUTING.md"
}
]
},
{
"group": "Reference API",
"tab": "reference",
"pages": [
{ "title": "ai", "href": "/reference/ai/lib" },
{ "title": "analytics", "href": "/reference/analytics/lib/modular" },
{ "title": "app", "href": "/reference/app/lib/modular" },
{ "title": "app utils", "href": "/reference/app/lib/utils" },
{ "title": "app-check", "href": "/reference/app-check/lib/modular" },
{ "title": "app-distribution", "href": "/reference/app-distribution/lib/modular" },
{ "title": "auth", "href": "/reference/auth/lib/modular" },
{ "title": "crashlytics", "href": "/reference/crashlytics/lib/modular" },
{ "title": "database", "href": "/reference/database/lib/modular" },
{ "title": "firestore", "href": "/reference/firestore/lib/modular" },
{ "title": "functions", "href": "/reference/functions/lib/modular" },
{ "title": "in-app-messaging", "href": "/reference/in-app-messaging/lib/modular" },
{ "title": "installations", "href": "/reference/installations/lib/modular" },
{ "title": "messaging", "href": "/reference/messaging/lib/modular" },
{ "title": "ml", "href": "/reference/ml/lib/modular" },
{ "title": "perf", "href": "/reference/perf/lib/modular" },
{ "title": "remote-config", "href": "/reference/remote-config/lib/modular" },
{ "title": "storage", "href": "/reference/storage/lib/modular" },
{ "title": "vertexai", "href": "/reference/vertexai/lib" }
]
},
{
"group": "Analytics",
"tab": "root",
"icon": "//static.invertase.io/assets/firebase/analytics.svg",
"pages": [
{ "title": "Usage", "href": "/analytics/usage" },
{ "title": "Screen Tracking", "href": "/analytics/screen-tracking" },
{
"title": "Building an Analytics Funnel",
"href": "https://blog.theodo.com/2018/01/building-google-analytics-funnel-firebase-react-native"
}
]
},
{
"group": "App Check",
"tab": "root",
"icon": "//static.invertase.io/assets/social/firebase-logo.png",
"pages": [{ "title": "Usage", "href": "/app-check/usage" }]
},
{
"group": "App Distribution",
"tab": "root",
"icon": "//static.invertase.io/assets/firebase/app-distribution.svg",
"pages": [{ "title": "Usage", "href": "/app-distribution/usage" }]
},
{
"group": "Authentication",
"tab": "root",
"icon": "//static.invertase.io/assets/firebase/authentication.svg",
"pages": [
{ "title": "Usage", "href": "/auth/usage" },
{ "title": "Social Auth", "href": "/auth/social-auth" },
{ "title": "Phone Auth", "href": "/auth/phone-auth" },
{ "title": "OpenID Connect Auth", "href": "/auth/oidc-auth" },
{ "title": "Multi-factor Auth", "href": "/auth/multi-factor-auth" }
]
},
{
"group": "Cloud Firestore",
"tab": "root",
"icon": "//static.invertase.io/assets/firebase/cloud-firestore.svg",
"pages": [
{ "title": "Usage", "href": "/firestore/usage" },
{ "title": "Usage with Emulator", "href": "/firestore/emulator" },
{ "title": "Usage with FlatLists", "href": "/firestore/usage-with-flatlists" },
{ "title": "Implementing Pagination", "href": "/firestore/pagination" },
{
"title": "Building a \"TODO\" app",
"href": "https://invertase.io/blog/getting-started-with-cloud-firestore-on-react-native"
}
]
},
{
"group": "Cloud Functions",
"tab": "root",
"icon": "//static.invertase.io/assets/firebase/cloud-functions.svg",
"pages": [
{ "title": "Usage", "href": "/functions/usage" },
{
"title": "Writing & Deploying Functions",
"href": "/functions/writing-deploying-functions"
}
]
},
{
"group": "Cloud Messaging",
"tab": "root",
"icon": "//static.invertase.io/assets/firebase/cloud-messaging.svg",
"pages": [
{ "title": "Usage", "href": "/messaging/usage" },
{ "title": "iOS Project Setup", "href": "/messaging/usage/ios-setup" },
{ "title": "iOS Permissions", "href": "/messaging/ios-permissions" },
{ "title": "Notifications", "href": "/messaging/notifications" },
{ "title": "iOS Notification Images", "href": "/messaging/ios-notification-images" },
{ "title": "Server Integration", "href": "/messaging/server-integration" }
]
},
{
"group": "Cloud Storage",
"tab": "root",
"icon": "//static.invertase.io/assets/firebase/cloud-storage.svg",
"pages": [{ "title": "Usage", "href": "/storage/usage" }]
},
{
"group": "Core / App",
"tab": "root",
"icon": "//static.invertase.io/assets/social/firebase-logo.png",
"pages": [
{ "title": "Usage", "href": "/app/usage" },
{ "title": "JSON Config", "href": "/app/json-config" },
{ "title": "Utils", "href": "/app/utils" }
]
},
{
"group": "Crashlytics",
"tab": "root",
"icon": "//static.invertase.io/assets/firebase/crashlytics.svg",
"pages": [
{ "title": "Usage", "href": "/crashlytics/usage" },
{ "title": "Viewing crash reports", "href": "/crashlytics/crash-reports" }
]
},
{
"group": "Realtime Database",
"tab": "root",
"icon": "//static.invertase.io/assets/firebase/realtime-database.svg",
"pages": [
{ "title": "Usage", "href": "/database/usage" },
{ "title": "Offline Support", "href": "/database/offline-support" },
{ "title": "Presence Detection", "href": "/database/presence-detection" }
]
},
{
"group": "In-App Messaging",
"tab": "root",
"icon": "//static.invertase.io/assets/firebase/in-app-messaging.svg",
"pages": [{ "title": "Usage", "href": "/in-app-messaging/usage" }]
},
{
"group": "Installations",
"tab": "root",
"icon": "//static.invertase.io/assets/social/firebase-logo.png",
"pages": [{ "title": "Usage", "href": "/installations/usage" }]
},
{
"group": "ML",
"tab": "root",
"icon": "//static.invertase.io/assets/firebase/ml-kit.svg",
"pages": [{ "title": "Usage", "href": "/ml/usage" }]
},
{
"group": "Remote Config",
"tab": "root",
"icon": "//static.invertase.io/assets/firebase/remote-config.svg",
"pages": [{ "title": "Usage", "href": "/remote-config/usage" }]
},
{
"group": "Performance Monitoring",
"tab": "root",
"icon": "//static.invertase.io/assets/firebase/performance-monitoring.svg",
"pages": [
{ "title": "Usage", "href": "/perf/usage" },
{ "title": "Axios Integration", "href": "/perf/axios-integration" },
{ "title": "KY Integration", "href": "/perf/ky-integration" }
]
},
{
"group": "VertexAi",
"tab": "root",
"icon": "//static.invertase.io/assets/social/firebase-logo.png",
"pages": [{ "title": "Usage", "href": "/vertexai/usage" }]
},
{
"group": "Legacy docs",
"tab": "root",
"icon": "//static.invertase.io/assets/social/firebase-logo.png",
"pages": [
{ "title": "Migrating to v6", "href": "/migrating-to-v6" },
{
"title": "Legacy Docs (<= v5)",
"href": "https://v5.rnfirebase.io/docs/v5.x.x/getting-started"
}
]
}
]
}
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Loading
Loading