MCPcopy Index your code
hub / github.com/FirebaseExtended/reactfire / useInitSdk

Function useInitSdk

src/sdk.tsx:52–70  ·  view source on GitHub ↗
(
  sdkName: string,
  SdkContext: React.Context<Sdk | undefined>,
  sdkInitializer: (firebaseApp: FirebaseApp) => Promise<Sdk>,
  options?: ReactFireOptions
)

Source from the content-addressed store, hash-verified

50}
51
52function useInitSdk<Sdk extends FirebaseSdks>(
53 sdkName: string,
54 SdkContext: React.Context<Sdk | undefined>,
55 sdkInitializer: (firebaseApp: FirebaseApp) => Promise<Sdk>,
56 options?: ReactFireOptions
57) {
58 const firebaseApp = useFirebaseApp();
59
60 // Some initialization functions (like Firestore's `enableIndexedDbPersistence`)
61 // can only be called before anything else. So if an sdk is already available in context,
62 // it isn't safe to call initialization functions again.
63 if (React.useContext(SdkContext)) {
64 throw new Error(`Cannot initialize SDK ${sdkName} because it already exists in Context`);
65 }
66
67 const initializeSdk = React.useMemo(() => sdkInitializer(firebaseApp), [firebaseApp]);
68
69 return useObservable<Sdk>(`firebase-sdk:${sdkName}:${firebaseApp.name}`, from(initializeSdk), options);
70}
71
72export const AppCheckProvider = getSdkProvider<AppCheck>(AppCheckSdkContext);
73export const AuthProvider = getSdkProvider<Auth>(AuthSdkContext);

Callers 9

useInitAppCheckFunction · 0.85
useInitAuthFunction · 0.85
useInitAnalyticsFunction · 0.85
useInitDatabaseFunction · 0.85
useInitFirestoreFunction · 0.85
useInitFunctionsFunction · 0.85
useInitPerformanceFunction · 0.85
useInitRemoteConfigFunction · 0.85
useInitStorageFunction · 0.85

Calls 2

useFirebaseAppFunction · 0.90
useObservableFunction · 0.90

Tested by

no test coverage detected