File tree Expand file tree Collapse file tree 3 files changed +59
-14
lines changed
Expand file tree Collapse file tree 3 files changed +59
-14
lines changed Original file line number Diff line number Diff line change @@ -56,11 +56,35 @@ The default [Telemetry](./telemetry_.telemetry.md#telemetry_interface) instance
5656### Example
5757
5858
59- ``` html
60- <body >
61- <FirebaseTelemetry firebaseApp ={app} />
62- ... my app ...
63- </body >
59+ ``` tsx
60+ import { useEffect , useState } from " react" ;
61+ import { FirebaseTelemetry } from " @firebase/telemetry/react" ;
62+ import { FirebaseApp , initializeApp } from " @firebase/app" ;
63+
64+ export default function MyApp() {
65+ const [app, setApp] = useState <FirebaseApp | null >(null );
66+
67+ useEffect (() => {
68+ if (getApps ().length === 0 ) {
69+ const newApp = initializeApp ({... });
70+ setApp (newApp );
71+ } else {
72+ setApp (getApp ());
73+ }
74+ }, []);
75+
76+ return (
77+ <>
78+ { app && (
79+ <FirebaseTelemetry
80+ firebaseApp = { app }
81+ telemetryOptions = { {... }}
82+ />
83+ )}
84+ ...
85+ </>
86+ );
87+ }
6488
6589```
6690
Original file line number Diff line number Diff line change @@ -81,10 +81,7 @@ export class FirebaseErrorHandler implements ErrorHandler {
8181 private readonly router = inject ( Router ) ;
8282 private readonly telemetry : Telemetry ;
8383
84- constructor (
85- app : FirebaseApp ,
86- telemetryOptions ?: TelemetryOptions
87- ) {
84+ constructor ( app : FirebaseApp , telemetryOptions ?: TelemetryOptions ) {
8885 this . telemetry = getTelemetry ( app , telemetryOptions ) ;
8986 }
9087
Original file line number Diff line number Diff line change @@ -32,11 +32,35 @@ export * from '../public-types';
3232 * implicitly caught by Error Boundaries, will not be captured by this component.
3333 *
3434 * @example
35- * ```html
36- * <body>
37- * <FirebaseTelemetry firebaseApp={app} />
38- * ... my app ...
39- * </body>
35+ * ```tsx
36+ * import { useEffect, useState } from "react";
37+ * import { FirebaseTelemetry } from "@firebase/telemetry/react";
38+ * import { FirebaseApp, initializeApp } from "@firebase/app";
39+ *
40+ * export default function MyApp() {
41+ * const [app, setApp] = useState<FirebaseApp | null>(null);
42+ *
43+ * useEffect(() => {
44+ * if (getApps().length === 0) {
45+ * const newApp = initializeApp({...});
46+ * setApp(newApp);
47+ * } else {
48+ * setApp(getApp());
49+ * }
50+ * }, []);
51+ *
52+ * return (
53+ * <>
54+ * {app && (
55+ * <FirebaseTelemetry
56+ * firebaseApp={app}
57+ * telemetryOptions={{...}}
58+ * />
59+ * )}
60+ * ...
61+ * </>
62+ * );
63+ * }
4064 * ```
4165 *
4266 * @param firebaseApp - The {@link @firebase/app#FirebaseApp } instance to use.
You can’t perform that action at this time.
0 commit comments