diff --git a/docs-devsite/telemetry_react.md b/docs-devsite/telemetry_react.md index 0425036769..f3e04458ab 100644 --- a/docs-devsite/telemetry_react.md +++ b/docs-devsite/telemetry_react.md @@ -56,11 +56,35 @@ The default [Telemetry](./telemetry_.telemetry.md#telemetry_interface) instance ### Example -```html - - - ... my app ... - +```tsx +import { useEffect, useState } from "react"; +import { FirebaseTelemetry } from "@firebase/telemetry/react"; +import { FirebaseApp, initializeApp } from "@firebase/app"; + +export default function MyApp() { + const [app, setApp] = useState(null); + + useEffect(() => { + if (getApps().length === 0) { + const newApp = initializeApp({...}); + setApp(newApp); + } else { + setApp(getApp()); + } + }, []); + + return ( + <> + {app && ( + + )} + ... + + ); +} ``` diff --git a/packages/telemetry/src/angular/index.ts b/packages/telemetry/src/angular/index.ts index 4603fb2176..a7e5243bc9 100644 --- a/packages/telemetry/src/angular/index.ts +++ b/packages/telemetry/src/angular/index.ts @@ -81,10 +81,7 @@ export class FirebaseErrorHandler implements ErrorHandler { private readonly router = inject(Router); private readonly telemetry: Telemetry; - constructor( - app: FirebaseApp, - telemetryOptions?: TelemetryOptions - ) { + constructor(app: FirebaseApp, telemetryOptions?: TelemetryOptions) { this.telemetry = getTelemetry(app, telemetryOptions); } diff --git a/packages/telemetry/src/react/index.ts b/packages/telemetry/src/react/index.ts index 7718a8df9a..f41dee7592 100644 --- a/packages/telemetry/src/react/index.ts +++ b/packages/telemetry/src/react/index.ts @@ -32,11 +32,35 @@ export * from '../public-types'; * implicitly caught by Error Boundaries, will not be captured by this component. * * @example - * ```html - * - * - * ... my app ... - * + * ```tsx + * import { useEffect, useState } from "react"; + * import { FirebaseTelemetry } from "@firebase/telemetry/react"; + * import { FirebaseApp, initializeApp } from "@firebase/app"; + * + * export default function MyApp() { + * const [app, setApp] = useState(null); + * + * useEffect(() => { + * if (getApps().length === 0) { + * const newApp = initializeApp({...}); + * setApp(newApp); + * } else { + * setApp(getApp()); + * } + * }, []); + * + * return ( + * <> + * {app && ( + * + * )} + * ... + * + * ); + * } * ``` * * @param firebaseApp - The {@link @firebase/app#FirebaseApp} instance to use.