11import * as firebase from 'firebase/app' ;
22import * as React from 'react' ;
33
4- export * from './sdk' ;
5-
64type FirebaseAppContextValue = firebase . app . App ;
75
86// INVESTIGATE I don't like magic strings, can we have export this in js-sdk?
@@ -18,11 +16,13 @@ type Props = {
1816 appName ?: string ;
1917} ;
2018
19+ const version = '::__reactfireversion__::' ;
20+
2121const shallowEq = ( a : Object , b : Object ) =>
2222 a == b ||
2323 [ ...Object . keys ( a ) , ...Object . keys ( b ) ] . every ( key => a [ key ] == b [ key ] ) ;
2424
25- export function FirebaseAppProvider ( props : Props & { [ key : string ] : unknown } ) {
25+ function FirebaseAppProvider ( props : Props & { [ key : string ] : unknown } ) {
2626 const { firebaseConfig, appName } = props ;
2727 const firebaseApp : firebase . app . App =
2828 props . firebaseApp ||
@@ -38,14 +38,17 @@ export function FirebaseAppProvider(props: Props & { [key: string]: unknown }) {
3838 'default' } firebase app instance, give this new instance a different appName.`;
3939 }
4040 } else {
41+ const reactVersion = React . version || 'unknown' ;
42+ firebase . registerVersion ( 'react' , reactVersion ) ;
43+ firebase . registerVersion ( 'reactfire' , version ) ;
4144 return firebase . initializeApp ( firebaseConfig , appName ) ;
4245 }
4346 } , [ firebaseConfig , appName ] ) ;
4447
4548 return < FirebaseAppContext . Provider value = { firebaseApp } { ...props } /> ;
4649}
4750
48- export function useFirebaseApp ( ) {
51+ function useFirebaseApp ( ) {
4952 const firebaseApp = React . useContext ( FirebaseAppContext ) ;
5053 if ( ! firebaseApp ) {
5154 throw new Error (
@@ -55,3 +58,11 @@ export function useFirebaseApp() {
5558
5659 return firebaseApp ;
5760}
61+
62+
63+ export * from './sdk' ;
64+ export {
65+ FirebaseAppProvider ,
66+ useFirebaseApp ,
67+ version ,
68+ } ;
0 commit comments